From 81861cc876ea638ea3eddd7d5973832e1aab556a Mon Sep 17 00:00:00 2001 From: Nazzareno Massari Date: Mon, 20 Jul 2020 18:33:52 +0100 Subject: [PATCH] update abi, v0.5.0 on kovan --- abi/AccessControl.json | 1871 ++++++------ abi/Address.json | 1220 ++++---- abi/BadgeFactory.json | 315 +- abi/BadgeRoles.json | 166 +- abi/Context.json | 148 +- abi/Counters.json | 368 +-- abi/DSChiefLike.json | 4818 +++++++++++++++++------------- abi/ERC165.json | 348 +-- abi/ERC721.json | 5644 ++++++++++++++++++------------------ abi/ERC721Burnable.json | 256 +- abi/EnumerableMap.json | 3172 ++++++++++---------- abi/EnumerableSet.json | 2704 ++++++++--------- abi/FlipperLike.json | 4818 +++++++++++++++++------------- abi/IERC165.json | 88 +- abi/IERC721.json | 691 ++--- abi/IERC721Enumerable.json | 216 +- abi/IERC721Metadata.json | 196 +- abi/IERC721Receiver.json | 124 +- abi/MakerBadges.json | 4819 +++++++++++++++++------------- abi/MakerBadgesLike.json | 302 +- abi/MerkleProof.json | 428 +-- abi/Migrations.json | 230 +- abi/Ownable.json | 612 ++-- abi/Pausable.json | 504 ++-- abi/PotLike.json | 4818 +++++++++++++++++------------- abi/SafeMath.json | 1192 ++++---- abi/Strings.json | 492 ++-- 27 files changed, 22085 insertions(+), 18475 deletions(-) diff --git a/abi/AccessControl.json b/abi/AccessControl.json index 194b103..3292118 100644 --- a/abi/AccessControl.json +++ b/abi/AccessControl.json @@ -230,7 +230,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ``` bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ``` function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it.\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x92f7900d382761c7faefeaced81c6b4f1aae909ed0551803bfe8f27101956360\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://407c0864143968542e5cf5aa7556916d2cf292b201e3dadb65662e9a3aa24187\",\"dweb:/ipfs/QmSnXzYAUaGLGr7uofRbgQraTJvatbjQLBPhyYiMd18oUJ\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ``` bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ``` function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it.\",\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x92f7900d382761c7faefeaced81c6b4f1aae909ed0551803bfe8f27101956360\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://407c0864143968542e5cf5aa7556916d2cf292b201e3dadb65662e9a3aa24187\",\"dweb:/ipfs/QmSnXzYAUaGLGr7uofRbgQraTJvatbjQLBPhyYiMd18oUJ\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, @@ -242,15 +242,15 @@ "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", "exportedSymbols": { "AccessControl": [ - 1418 + 1449 ] }, - "id": 1419, + "id": 1450, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1137, + "id": 1168, "literals": [ "solidity", "^", @@ -263,10 +263,10 @@ { "absolutePath": "@openzeppelin/contracts/utils/EnumerableSet.sol", "file": "../utils/EnumerableSet.sol", - "id": 1138, + "id": 1169, "nodeType": "ImportDirective", - "scope": 1419, - "sourceUnit": 4121, + "scope": 1450, + "sourceUnit": 4152, "src": "58:36:5", "symbolAliases": [], "unitAlias": "" @@ -274,10 +274,10 @@ { "absolutePath": "@openzeppelin/contracts/utils/Address.sol", "file": "../utils/Address.sol", - "id": 1139, + "id": 1170, "nodeType": "ImportDirective", - "scope": 1419, - "sourceUnit": 3221, + "scope": 1450, + "sourceUnit": 3252, "src": "95:30:5", "symbolAliases": [], "unitAlias": "" @@ -285,10 +285,10 @@ { "absolutePath": "@openzeppelin/contracts/GSN/Context.sol", "file": "../GSN/Context.sol", - "id": 1140, + "id": 1171, "nodeType": "ImportDirective", - "scope": 1419, - "sourceUnit": 1136, + "scope": 1450, + "sourceUnit": 1167, "src": "126:28:5", "symbolAliases": [], "unitAlias": "" @@ -300,51 +300,51 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1142, + "id": 1173, "name": "Context", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1135, + "referencedDeclaration": 1166, "src": "1468:7:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$1135", + "typeIdentifier": "t_contract$_Context_$1166", "typeString": "contract Context" } }, - "id": 1143, + "id": 1174, "nodeType": "InheritanceSpecifier", "src": "1468:7:5" } ], "contractDependencies": [ - 1135 + 1166 ], "contractKind": "contract", "documentation": { - "id": 1141, + "id": 1172, "nodeType": "StructuredDocumentation", "src": "156:1276:5", "text": " @dev Contract module that allows children to implement role-based access\n control mechanisms.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```\n function foo() public {\n require(hasRole(MY_ROLE, msg.sender));\n ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it." }, "fullyImplemented": true, - "id": 1418, + "id": 1449, "linearizedBaseContracts": [ - 1418, - 1135 + 1449, + 1166 ], "name": "AccessControl", "nodeType": "ContractDefinition", "nodes": [ { - "id": 1146, + "id": 1177, "libraryName": { "contractScope": null, - "id": 1144, + "id": 1175, "name": "EnumerableSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4120, + "referencedDeclaration": 4151, "src": "1488:13:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_EnumerableSet_$4120", + "typeIdentifier": "t_contract$_EnumerableSet_$4151", "typeString": "library EnumerableSet" } }, @@ -352,35 +352,35 @@ "src": "1482:49:5", "typeName": { "contractScope": null, - "id": 1145, + "id": 1176, "name": "EnumerableSet.AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, + "referencedDeclaration": 3947, "src": "1506:24:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } } }, { - "id": 1149, + "id": 1180, "libraryName": { "contractScope": null, - "id": 1147, + "id": 1178, "name": "Address", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3220, + "referencedDeclaration": 3251, "src": "1542:7:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$3220", + "typeIdentifier": "t_contract$_Address_$3251", "typeString": "library Address" } }, "nodeType": "UsingForDirective", "src": "1536:26:5", "typeName": { - "id": 1148, + "id": 1179, "name": "address", "nodeType": "ElementaryTypeName", "src": "1554:7:5", @@ -393,32 +393,32 @@ }, { "canonicalName": "AccessControl.RoleData", - "id": 1154, + "id": 1185, "members": [ { "constant": false, - "id": 1151, + "id": 1182, "mutability": "mutable", "name": "members", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1154, + "scope": 1185, "src": "1594:32:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" }, "typeName": { "contractScope": null, - "id": 1150, + "id": 1181, "name": "EnumerableSet.AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, + "referencedDeclaration": 3947, "src": "1594:24:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } }, @@ -427,12 +427,12 @@ }, { "constant": false, - "id": 1153, + "id": 1184, "mutability": "mutable", "name": "adminRole", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1154, + "scope": 1185, "src": "1636:17:5", "stateVariable": false, "storageLocation": "default", @@ -441,7 +441,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1152, + "id": 1183, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1636:7:5", @@ -456,29 +456,29 @@ ], "name": "RoleData", "nodeType": "StructDefinition", - "scope": 1418, + "scope": 1449, "src": "1568:92:5", "visibility": "public" }, { "constant": false, - "id": 1158, + "id": 1189, "mutability": "mutable", "name": "_roles", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1418, + "scope": 1449, "src": "1666:44:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData)" }, "typeName": { - "id": 1157, + "id": 1188, "keyType": { - "id": 1155, + "id": 1186, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1675:7:5", @@ -490,18 +490,18 @@ "nodeType": "Mapping", "src": "1666:29:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData)" }, "valueType": { "contractScope": null, - "id": 1156, + "id": 1187, "name": "RoleData", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1154, + "referencedDeclaration": 1185, "src": "1686:8:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage_ptr", + "typeIdentifier": "t_struct$_RoleData_$1185_storage_ptr", "typeString": "struct AccessControl.RoleData" } } @@ -512,12 +512,12 @@ { "constant": true, "functionSelector": "a217fddf", - "id": 1161, + "id": 1192, "mutability": "constant", "name": "DEFAULT_ADMIN_ROLE", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1418, + "scope": 1449, "src": "1717:49:5", "stateVariable": true, "storageLocation": "default", @@ -526,7 +526,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1159, + "id": 1190, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1717:7:5", @@ -538,7 +538,7 @@ "value": { "argumentTypes": null, "hexValue": "30783030", - "id": 1160, + "id": 1191, "isConstant": false, "isLValue": false, "isPure": true, @@ -558,27 +558,27 @@ { "anonymous": false, "documentation": { - "id": 1162, + "id": 1193, "nodeType": "StructuredDocumentation", "src": "1773:292:5", "text": " @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this.\n _Available since v3.1._" }, - "id": 1170, + "id": 1201, "name": "RoleAdminChanged", "nodeType": "EventDefinition", "parameters": { - "id": 1169, + "id": 1200, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1164, + "id": 1195, "indexed": true, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1170, + "scope": 1201, "src": "2093:20:5", "stateVariable": false, "storageLocation": "default", @@ -587,7 +587,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1163, + "id": 1194, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2093:7:5", @@ -601,13 +601,13 @@ }, { "constant": false, - "id": 1166, + "id": 1197, "indexed": true, "mutability": "mutable", "name": "previousAdminRole", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1170, + "scope": 1201, "src": "2115:33:5", "stateVariable": false, "storageLocation": "default", @@ -616,7 +616,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1165, + "id": 1196, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2115:7:5", @@ -630,13 +630,13 @@ }, { "constant": false, - "id": 1168, + "id": 1199, "indexed": true, "mutability": "mutable", "name": "newAdminRole", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1170, + "scope": 1201, "src": "2150:28:5", "stateVariable": false, "storageLocation": "default", @@ -645,7 +645,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1167, + "id": 1198, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2150:7:5", @@ -665,27 +665,27 @@ { "anonymous": false, "documentation": { - "id": 1171, + "id": 1202, "nodeType": "StructuredDocumentation", "src": "2186:198:5", "text": " @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call, an admin role\n bearer except when using {_setupRole}." }, - "id": 1179, + "id": 1210, "name": "RoleGranted", "nodeType": "EventDefinition", "parameters": { - "id": 1178, + "id": 1209, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1173, + "id": 1204, "indexed": true, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1179, + "scope": 1210, "src": "2407:20:5", "stateVariable": false, "storageLocation": "default", @@ -694,7 +694,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1172, + "id": 1203, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2407:7:5", @@ -708,13 +708,13 @@ }, { "constant": false, - "id": 1175, + "id": 1206, "indexed": true, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1179, + "scope": 1210, "src": "2429:23:5", "stateVariable": false, "storageLocation": "default", @@ -723,7 +723,7 @@ "typeString": "address" }, "typeName": { - "id": 1174, + "id": 1205, "name": "address", "nodeType": "ElementaryTypeName", "src": "2429:7:5", @@ -738,13 +738,13 @@ }, { "constant": false, - "id": 1177, + "id": 1208, "indexed": true, "mutability": "mutable", "name": "sender", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1179, + "scope": 1210, "src": "2454:22:5", "stateVariable": false, "storageLocation": "default", @@ -753,7 +753,7 @@ "typeString": "address" }, "typeName": { - "id": 1176, + "id": 1207, "name": "address", "nodeType": "ElementaryTypeName", "src": "2454:7:5", @@ -774,27 +774,27 @@ { "anonymous": false, "documentation": { - "id": 1180, + "id": 1211, "nodeType": "StructuredDocumentation", "src": "2484:275:5", "text": " @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n - if using `revokeRole`, it is the admin role bearer\n - if using `renounceRole`, it is the role bearer (i.e. `account`)" }, - "id": 1188, + "id": 1219, "name": "RoleRevoked", "nodeType": "EventDefinition", "parameters": { - "id": 1187, + "id": 1218, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1182, + "id": 1213, "indexed": true, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1188, + "scope": 1219, "src": "2782:20:5", "stateVariable": false, "storageLocation": "default", @@ -803,7 +803,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1181, + "id": 1212, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2782:7:5", @@ -817,13 +817,13 @@ }, { "constant": false, - "id": 1184, + "id": 1215, "indexed": true, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1188, + "scope": 1219, "src": "2804:23:5", "stateVariable": false, "storageLocation": "default", @@ -832,7 +832,7 @@ "typeString": "address" }, "typeName": { - "id": 1183, + "id": 1214, "name": "address", "nodeType": "ElementaryTypeName", "src": "2804:7:5", @@ -847,13 +847,13 @@ }, { "constant": false, - "id": 1186, + "id": 1217, "indexed": true, "mutability": "mutable", "name": "sender", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1188, + "scope": 1219, "src": "2829:22:5", "stateVariable": false, "storageLocation": "default", @@ -862,7 +862,7 @@ "typeString": "address" }, "typeName": { - "id": 1185, + "id": 1216, "name": "address", "nodeType": "ElementaryTypeName", "src": "2829:7:5", @@ -882,7 +882,7 @@ }, { "body": { - "id": 1206, + "id": 1237, "nodeType": "Block", "src": "3015:62:5", "statements": [ @@ -892,11 +892,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1203, + "id": 1234, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1193, + "referencedDeclaration": 1224, "src": "3062:7:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -917,25 +917,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1198, + "id": 1229, "name": "_roles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, + "referencedDeclaration": 1189, "src": "3032:6:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" } }, - "id": 1200, + "id": 1231, "indexExpression": { "argumentTypes": null, - "id": 1199, + "id": 1230, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1191, + "referencedDeclaration": 1222, "src": "3039:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -949,39 +949,39 @@ "nodeType": "IndexAccess", "src": "3032:12:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage", + "typeIdentifier": "t_struct$_RoleData_$1185_storage", "typeString": "struct AccessControl.RoleData storage ref" } }, - "id": 1201, + "id": 1232, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "members", "nodeType": "MemberAccess", - "referencedDeclaration": 1151, + "referencedDeclaration": 1182, "src": "3032:20:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1202, + "id": 1233, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, + "referencedDeclaration": 4016, "src": "3032:29:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 1204, + "id": 1235, "isConstant": false, "isLValue": false, "isPure": false, @@ -996,21 +996,21 @@ "typeString": "bool" } }, - "functionReturnParameters": 1197, - "id": 1205, + "functionReturnParameters": 1228, + "id": 1236, "nodeType": "Return", "src": "3025:45:5" } ] }, "documentation": { - "id": 1189, + "id": 1220, "nodeType": "StructuredDocumentation", "src": "2859:76:5", "text": " @dev Returns `true` if `account` has been granted `role`." }, "functionSelector": "91d14854", - "id": 1207, + "id": 1238, "implemented": true, "kind": "function", "modifiers": [], @@ -1018,17 +1018,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1194, + "id": 1225, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1191, + "id": 1222, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1207, + "scope": 1238, "src": "2957:12:5", "stateVariable": false, "storageLocation": "default", @@ -1037,7 +1037,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1190, + "id": 1221, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2957:7:5", @@ -1051,12 +1051,12 @@ }, { "constant": false, - "id": 1193, + "id": 1224, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1207, + "scope": 1238, "src": "2971:15:5", "stateVariable": false, "storageLocation": "default", @@ -1065,7 +1065,7 @@ "typeString": "address" }, "typeName": { - "id": 1192, + "id": 1223, "name": "address", "nodeType": "ElementaryTypeName", "src": "2971:7:5", @@ -1082,17 +1082,17 @@ "src": "2956:31:5" }, "returnParameters": { - "id": 1197, + "id": 1228, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1196, + "id": 1227, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1207, + "scope": 1238, "src": "3009:4:5", "stateVariable": false, "storageLocation": "default", @@ -1101,7 +1101,7 @@ "typeString": "bool" }, "typeName": { - "id": 1195, + "id": 1226, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3009:4:5", @@ -1116,7 +1116,7 @@ ], "src": "3008:6:5" }, - "scope": 1418, + "scope": 1449, "src": "2940:137:5", "stateMutability": "view", "virtual": false, @@ -1124,7 +1124,7 @@ }, { "body": { - "id": 1222, + "id": 1253, "nodeType": "Block", "src": "3317:53:5", "statements": [ @@ -1140,25 +1140,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1215, + "id": 1246, "name": "_roles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, + "referencedDeclaration": 1189, "src": "3334:6:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" } }, - "id": 1217, + "id": 1248, "indexExpression": { "argumentTypes": null, - "id": 1216, + "id": 1247, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1210, + "referencedDeclaration": 1241, "src": "3341:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1172,39 +1172,39 @@ "nodeType": "IndexAccess", "src": "3334:12:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage", + "typeIdentifier": "t_struct$_RoleData_$1185_storage", "typeString": "struct AccessControl.RoleData storage ref" } }, - "id": 1218, + "id": 1249, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "members", "nodeType": "MemberAccess", - "referencedDeclaration": 1151, + "referencedDeclaration": 1182, "src": "3334:20:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1219, + "id": 1250, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": 3999, + "referencedDeclaration": 4030, "src": "3334:27:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)" } }, - "id": 1220, + "id": 1251, "isConstant": false, "isLValue": false, "isPure": false, @@ -1219,21 +1219,21 @@ "typeString": "uint256" } }, - "functionReturnParameters": 1214, - "id": 1221, + "functionReturnParameters": 1245, + "id": 1252, "nodeType": "Return", "src": "3327:36:5" } ] }, "documentation": { - "id": 1208, + "id": 1239, "nodeType": "StructuredDocumentation", "src": "3083:157:5", "text": " @dev Returns the number of accounts that have `role`. Can be used\n together with {getRoleMember} to enumerate all bearers of a role." }, "functionSelector": "ca15c873", - "id": 1223, + "id": 1254, "implemented": true, "kind": "function", "modifiers": [], @@ -1241,17 +1241,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1211, + "id": 1242, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1210, + "id": 1241, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1223, + "scope": 1254, "src": "3273:12:5", "stateVariable": false, "storageLocation": "default", @@ -1260,7 +1260,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1209, + "id": 1240, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3273:7:5", @@ -1276,17 +1276,17 @@ "src": "3272:14:5" }, "returnParameters": { - "id": 1214, + "id": 1245, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1213, + "id": 1244, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1223, + "scope": 1254, "src": "3308:7:5", "stateVariable": false, "storageLocation": "default", @@ -1295,7 +1295,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1212, + "id": 1243, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3308:7:5", @@ -1310,7 +1310,7 @@ ], "src": "3307:9:5" }, - "scope": 1418, + "scope": 1449, "src": "3245:125:5", "stateMutability": "view", "virtual": false, @@ -1318,7 +1318,7 @@ }, { "body": { - "id": 1241, + "id": 1272, "nodeType": "Block", "src": "4037:54:5", "statements": [ @@ -1328,11 +1328,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1238, + "id": 1269, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1228, + "referencedDeclaration": 1259, "src": "4078:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1353,25 +1353,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1233, + "id": 1264, "name": "_roles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, + "referencedDeclaration": 1189, "src": "4054:6:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" } }, - "id": 1235, + "id": 1266, "indexExpression": { "argumentTypes": null, - "id": 1234, + "id": 1265, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1226, + "referencedDeclaration": 1257, "src": "4061:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1385,39 +1385,39 @@ "nodeType": "IndexAccess", "src": "4054:12:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage", + "typeIdentifier": "t_struct$_RoleData_$1185_storage", "typeString": "struct AccessControl.RoleData storage ref" } }, - "id": 1236, + "id": 1267, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "members", "nodeType": "MemberAccess", - "referencedDeclaration": 1151, + "referencedDeclaration": 1182, "src": "4054:20:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1237, + "id": 1268, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "at", "nodeType": "MemberAccess", - "referencedDeclaration": 4022, + "referencedDeclaration": 4053, "src": "4054:23:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" } }, - "id": 1239, + "id": 1270, "isConstant": false, "isLValue": false, "isPure": false, @@ -1432,21 +1432,21 @@ "typeString": "address" } }, - "functionReturnParameters": 1232, - "id": 1240, + "functionReturnParameters": 1263, + "id": 1271, "nodeType": "Return", "src": "4047:37:5" } ] }, "documentation": { - "id": 1224, + "id": 1255, "nodeType": "StructuredDocumentation", "src": "3376:574:5", "text": " @dev Returns one of the accounts that have `role`. `index` must be a\n value between 0 and {getRoleMemberCount}, non-inclusive.\n Role bearers are not sorted in any particular way, and their ordering may\n change at any point.\n WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n you perform all queries on the same block. See the following\n https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n for more information." }, "functionSelector": "9010d07c", - "id": 1242, + "id": 1273, "implemented": true, "kind": "function", "modifiers": [], @@ -1454,17 +1454,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1229, + "id": 1260, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1226, + "id": 1257, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1242, + "scope": 1273, "src": "3978:12:5", "stateVariable": false, "storageLocation": "default", @@ -1473,7 +1473,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1225, + "id": 1256, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3978:7:5", @@ -1487,12 +1487,12 @@ }, { "constant": false, - "id": 1228, + "id": 1259, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1242, + "scope": 1273, "src": "3992:13:5", "stateVariable": false, "storageLocation": "default", @@ -1501,7 +1501,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1227, + "id": 1258, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3992:7:5", @@ -1517,17 +1517,17 @@ "src": "3977:29:5" }, "returnParameters": { - "id": 1232, + "id": 1263, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1231, + "id": 1262, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1242, + "scope": 1273, "src": "4028:7:5", "stateVariable": false, "storageLocation": "default", @@ -1536,7 +1536,7 @@ "typeString": "address" }, "typeName": { - "id": 1230, + "id": 1261, "name": "address", "nodeType": "ElementaryTypeName", "src": "4028:7:5", @@ -1552,7 +1552,7 @@ ], "src": "4027:9:5" }, - "scope": 1418, + "scope": 1449, "src": "3955:136:5", "stateMutability": "view", "virtual": false, @@ -1560,7 +1560,7 @@ }, { "body": { - "id": 1255, + "id": 1286, "nodeType": "Block", "src": "4338:46:5", "statements": [ @@ -1571,25 +1571,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1250, + "id": 1281, "name": "_roles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, + "referencedDeclaration": 1189, "src": "4355:6:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" } }, - "id": 1252, + "id": 1283, "indexExpression": { "argumentTypes": null, - "id": 1251, + "id": 1282, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, + "referencedDeclaration": 1276, "src": "4362:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1603,39 +1603,39 @@ "nodeType": "IndexAccess", "src": "4355:12:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage", + "typeIdentifier": "t_struct$_RoleData_$1185_storage", "typeString": "struct AccessControl.RoleData storage ref" } }, - "id": 1253, + "id": 1284, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "adminRole", "nodeType": "MemberAccess", - "referencedDeclaration": 1153, + "referencedDeclaration": 1184, "src": "4355:22:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 1249, - "id": 1254, + "functionReturnParameters": 1280, + "id": 1285, "nodeType": "Return", "src": "4348:29:5" } ] }, "documentation": { - "id": 1243, + "id": 1274, "nodeType": "StructuredDocumentation", "src": "4097:170:5", "text": " @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}." }, "functionSelector": "248a9ca3", - "id": 1256, + "id": 1287, "implemented": true, "kind": "function", "modifiers": [], @@ -1643,17 +1643,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1246, + "id": 1277, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1245, + "id": 1276, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1256, + "scope": 1287, "src": "4294:12:5", "stateVariable": false, "storageLocation": "default", @@ -1662,7 +1662,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1244, + "id": 1275, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4294:7:5", @@ -1678,17 +1678,17 @@ "src": "4293:14:5" }, "returnParameters": { - "id": 1249, + "id": 1280, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1248, + "id": 1279, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1256, + "scope": 1287, "src": "4329:7:5", "stateVariable": false, "storageLocation": "default", @@ -1697,7 +1697,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1247, + "id": 1278, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4329:7:5", @@ -1712,7 +1712,7 @@ ], "src": "4328:9:5" }, - "scope": 1418, + "scope": 1449, "src": "4272:112:5", "stateMutability": "view", "virtual": false, @@ -1720,7 +1720,7 @@ }, { "body": { - "id": 1281, + "id": 1312, "nodeType": "Block", "src": "4699:158:5", "statements": [ @@ -1737,25 +1737,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1266, + "id": 1297, "name": "_roles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, + "referencedDeclaration": 1189, "src": "4725:6:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" } }, - "id": 1268, + "id": 1299, "indexExpression": { "argumentTypes": null, - "id": 1267, + "id": 1298, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1259, + "referencedDeclaration": 1290, "src": "4732:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1769,18 +1769,18 @@ "nodeType": "IndexAccess", "src": "4725:12:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage", + "typeIdentifier": "t_struct$_RoleData_$1185_storage", "typeString": "struct AccessControl.RoleData storage ref" } }, - "id": 1269, + "id": 1300, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "adminRole", "nodeType": "MemberAccess", - "referencedDeclaration": 1153, + "referencedDeclaration": 1184, "src": "4725:22:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1792,18 +1792,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1270, + "id": 1301, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "4749:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1271, + "id": 1302, "isConstant": false, "isLValue": false, "isPure": false, @@ -1830,18 +1830,18 @@ "typeString": "address payable" } ], - "id": 1265, + "id": 1296, "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, + "referencedDeclaration": 1238, "src": "4717:7:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) view returns (bool)" } }, - "id": 1272, + "id": 1303, "isConstant": false, "isLValue": false, "isPure": false, @@ -1859,7 +1859,7 @@ { "argumentTypes": null, "hexValue": "416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e74", - "id": 1273, + "id": 1304, "isConstant": false, "isLValue": false, "isPure": true, @@ -1886,7 +1886,7 @@ "typeString": "literal_string \"AccessControl: sender must be an admin to grant\"" } ], - "id": 1264, + "id": 1295, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1900,7 +1900,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1274, + "id": 1305, "isConstant": false, "isLValue": false, "isPure": false, @@ -1915,7 +1915,7 @@ "typeString": "tuple()" } }, - "id": 1275, + "id": 1306, "nodeType": "ExpressionStatement", "src": "4709:105:5" }, @@ -1925,11 +1925,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1277, + "id": 1308, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1259, + "referencedDeclaration": 1290, "src": "4836:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1938,11 +1938,11 @@ }, { "argumentTypes": null, - "id": 1278, + "id": 1309, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1261, + "referencedDeclaration": 1292, "src": "4842:7:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1961,18 +1961,18 @@ "typeString": "address" } ], - "id": 1276, + "id": 1307, "name": "_grantRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1393, + "referencedDeclaration": 1424, "src": "4825:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 1279, + "id": 1310, "isConstant": false, "isLValue": false, "isPure": false, @@ -1987,20 +1987,20 @@ "typeString": "tuple()" } }, - "id": 1280, + "id": 1311, "nodeType": "ExpressionStatement", "src": "4825:25:5" } ] }, "documentation": { - "id": 1257, + "id": 1288, "nodeType": "StructuredDocumentation", "src": "4390:239:5", "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role." }, "functionSelector": "2f2ff15d", - "id": 1282, + "id": 1313, "implemented": true, "kind": "function", "modifiers": [], @@ -2008,17 +2008,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1262, + "id": 1293, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1259, + "id": 1290, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1282, + "scope": 1313, "src": "4653:12:5", "stateVariable": false, "storageLocation": "default", @@ -2027,7 +2027,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1258, + "id": 1289, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4653:7:5", @@ -2041,12 +2041,12 @@ }, { "constant": false, - "id": 1261, + "id": 1292, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1282, + "scope": 1313, "src": "4667:15:5", "stateVariable": false, "storageLocation": "default", @@ -2055,7 +2055,7 @@ "typeString": "address" }, "typeName": { - "id": 1260, + "id": 1291, "name": "address", "nodeType": "ElementaryTypeName", "src": "4667:7:5", @@ -2072,12 +2072,12 @@ "src": "4652:31:5" }, "returnParameters": { - "id": 1263, + "id": 1294, "nodeType": "ParameterList", "parameters": [], "src": "4699:0:5" }, - "scope": 1418, + "scope": 1449, "src": "4634:223:5", "stateMutability": "nonpayable", "virtual": true, @@ -2085,7 +2085,7 @@ }, { "body": { - "id": 1307, + "id": 1338, "nodeType": "Block", "src": "5157:160:5", "statements": [ @@ -2102,25 +2102,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1292, + "id": 1323, "name": "_roles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, + "referencedDeclaration": 1189, "src": "5183:6:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" } }, - "id": 1294, + "id": 1325, "indexExpression": { "argumentTypes": null, - "id": 1293, + "id": 1324, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1285, + "referencedDeclaration": 1316, "src": "5190:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2134,18 +2134,18 @@ "nodeType": "IndexAccess", "src": "5183:12:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage", + "typeIdentifier": "t_struct$_RoleData_$1185_storage", "typeString": "struct AccessControl.RoleData storage ref" } }, - "id": 1295, + "id": 1326, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "adminRole", "nodeType": "MemberAccess", - "referencedDeclaration": 1153, + "referencedDeclaration": 1184, "src": "5183:22:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2157,18 +2157,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1296, + "id": 1327, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "5207:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1297, + "id": 1328, "isConstant": false, "isLValue": false, "isPure": false, @@ -2195,18 +2195,18 @@ "typeString": "address payable" } ], - "id": 1291, + "id": 1322, "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, + "referencedDeclaration": 1238, "src": "5175:7:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) view returns (bool)" } }, - "id": 1298, + "id": 1329, "isConstant": false, "isLValue": false, "isPure": false, @@ -2224,7 +2224,7 @@ { "argumentTypes": null, "hexValue": "416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65", - "id": 1299, + "id": 1330, "isConstant": false, "isLValue": false, "isPure": true, @@ -2251,7 +2251,7 @@ "typeString": "literal_string \"AccessControl: sender must be an admin to revoke\"" } ], - "id": 1290, + "id": 1321, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2265,7 +2265,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1300, + "id": 1331, "isConstant": false, "isLValue": false, "isPure": false, @@ -2280,7 +2280,7 @@ "typeString": "tuple()" } }, - "id": 1301, + "id": 1332, "nodeType": "ExpressionStatement", "src": "5167:106:5" }, @@ -2290,11 +2290,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1303, + "id": 1334, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1285, + "referencedDeclaration": 1316, "src": "5296:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2303,11 +2303,11 @@ }, { "argumentTypes": null, - "id": 1304, + "id": 1335, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1287, + "referencedDeclaration": 1318, "src": "5302:7:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2326,18 +2326,18 @@ "typeString": "address" } ], - "id": 1302, + "id": 1333, "name": "_revokeRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1417, + "referencedDeclaration": 1448, "src": "5284:11:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 1305, + "id": 1336, "isConstant": false, "isLValue": false, "isPure": false, @@ -2352,20 +2352,20 @@ "typeString": "tuple()" } }, - "id": 1306, + "id": 1337, "nodeType": "ExpressionStatement", "src": "5284:26:5" } ] }, "documentation": { - "id": 1283, + "id": 1314, "nodeType": "StructuredDocumentation", "src": "4863:223:5", "text": " @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role." }, "functionSelector": "d547741f", - "id": 1308, + "id": 1339, "implemented": true, "kind": "function", "modifiers": [], @@ -2373,17 +2373,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1288, + "id": 1319, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1285, + "id": 1316, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1308, + "scope": 1339, "src": "5111:12:5", "stateVariable": false, "storageLocation": "default", @@ -2392,7 +2392,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1284, + "id": 1315, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5111:7:5", @@ -2406,12 +2406,12 @@ }, { "constant": false, - "id": 1287, + "id": 1318, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1308, + "scope": 1339, "src": "5125:15:5", "stateVariable": false, "storageLocation": "default", @@ -2420,7 +2420,7 @@ "typeString": "address" }, "typeName": { - "id": 1286, + "id": 1317, "name": "address", "nodeType": "ElementaryTypeName", "src": "5125:7:5", @@ -2437,12 +2437,12 @@ "src": "5110:31:5" }, "returnParameters": { - "id": 1289, + "id": 1320, "nodeType": "ParameterList", "parameters": [], "src": "5157:0:5" }, - "scope": 1418, + "scope": 1449, "src": "5091:226:5", "stateMutability": "nonpayable", "virtual": true, @@ -2450,7 +2450,7 @@ }, { "body": { - "id": 1329, + "id": 1360, "nodeType": "Block", "src": "5876:137:5", "statements": [ @@ -2464,18 +2464,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1320, + "id": 1351, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1317, + "id": 1348, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1313, + "referencedDeclaration": 1344, "src": "5894:7:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2489,18 +2489,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1318, + "id": 1349, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "5905:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1319, + "id": 1350, "isConstant": false, "isLValue": false, "isPure": false, @@ -2524,7 +2524,7 @@ { "argumentTypes": null, "hexValue": "416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66", - "id": 1321, + "id": 1352, "isConstant": false, "isLValue": false, "isPure": true, @@ -2551,7 +2551,7 @@ "typeString": "literal_string \"AccessControl: can only renounce roles for self\"" } ], - "id": 1316, + "id": 1347, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2565,7 +2565,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1322, + "id": 1353, "isConstant": false, "isLValue": false, "isPure": false, @@ -2580,7 +2580,7 @@ "typeString": "tuple()" } }, - "id": 1323, + "id": 1354, "nodeType": "ExpressionStatement", "src": "5886:83:5" }, @@ -2590,11 +2590,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1325, + "id": 1356, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1311, + "referencedDeclaration": 1342, "src": "5992:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2603,11 +2603,11 @@ }, { "argumentTypes": null, - "id": 1326, + "id": 1357, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1313, + "referencedDeclaration": 1344, "src": "5998:7:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2626,18 +2626,18 @@ "typeString": "address" } ], - "id": 1324, + "id": 1355, "name": "_revokeRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1417, + "referencedDeclaration": 1448, "src": "5980:11:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 1327, + "id": 1358, "isConstant": false, "isLValue": false, "isPure": false, @@ -2652,20 +2652,20 @@ "typeString": "tuple()" } }, - "id": 1328, + "id": 1359, "nodeType": "ExpressionStatement", "src": "5980:26:5" } ] }, "documentation": { - "id": 1309, + "id": 1340, "nodeType": "StructuredDocumentation", "src": "5323:480:5", "text": " @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`." }, "functionSelector": "36568abe", - "id": 1330, + "id": 1361, "implemented": true, "kind": "function", "modifiers": [], @@ -2673,17 +2673,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1314, + "id": 1345, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1311, + "id": 1342, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1330, + "scope": 1361, "src": "5830:12:5", "stateVariable": false, "storageLocation": "default", @@ -2692,7 +2692,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1310, + "id": 1341, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5830:7:5", @@ -2706,12 +2706,12 @@ }, { "constant": false, - "id": 1313, + "id": 1344, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1330, + "scope": 1361, "src": "5844:15:5", "stateVariable": false, "storageLocation": "default", @@ -2720,7 +2720,7 @@ "typeString": "address" }, "typeName": { - "id": 1312, + "id": 1343, "name": "address", "nodeType": "ElementaryTypeName", "src": "5844:7:5", @@ -2737,12 +2737,12 @@ "src": "5829:31:5" }, "returnParameters": { - "id": 1315, + "id": 1346, "nodeType": "ParameterList", "parameters": [], "src": "5876:0:5" }, - "scope": 1418, + "scope": 1449, "src": "5808:205:5", "stateMutability": "nonpayable", "virtual": true, @@ -2750,7 +2750,7 @@ }, { "body": { - "id": 1343, + "id": 1374, "nodeType": "Block", "src": "6646:42:5", "statements": [ @@ -2760,11 +2760,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1339, + "id": 1370, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1333, + "referencedDeclaration": 1364, "src": "6667:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2773,11 +2773,11 @@ }, { "argumentTypes": null, - "id": 1340, + "id": 1371, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1335, + "referencedDeclaration": 1366, "src": "6673:7:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2796,18 +2796,18 @@ "typeString": "address" } ], - "id": 1338, + "id": 1369, "name": "_grantRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1393, + "referencedDeclaration": 1424, "src": "6656:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 1341, + "id": 1372, "isConstant": false, "isLValue": false, "isPure": false, @@ -2822,19 +2822,19 @@ "typeString": "tuple()" } }, - "id": 1342, + "id": 1373, "nodeType": "ExpressionStatement", "src": "6656:25:5" } ] }, "documentation": { - "id": 1331, + "id": 1362, "nodeType": "StructuredDocumentation", "src": "6019:554:5", "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event. Note that unlike {grantRole}, this function doesn't perform any\n checks on the calling account.\n [WARNING]\n ====\n This function should only be called from the constructor when setting\n up the initial roles for the system.\n Using this function in any other way is effectively circumventing the admin\n system imposed by {AccessControl}.\n ====" }, - "id": 1344, + "id": 1375, "implemented": true, "kind": "function", "modifiers": [], @@ -2842,17 +2842,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1336, + "id": 1367, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1333, + "id": 1364, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1344, + "scope": 1375, "src": "6598:12:5", "stateVariable": false, "storageLocation": "default", @@ -2861,7 +2861,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1332, + "id": 1363, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6598:7:5", @@ -2875,12 +2875,12 @@ }, { "constant": false, - "id": 1335, + "id": 1366, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1344, + "scope": 1375, "src": "6612:15:5", "stateVariable": false, "storageLocation": "default", @@ -2889,7 +2889,7 @@ "typeString": "address" }, "typeName": { - "id": 1334, + "id": 1365, "name": "address", "nodeType": "ElementaryTypeName", "src": "6612:7:5", @@ -2906,12 +2906,12 @@ "src": "6597:31:5" }, "returnParameters": { - "id": 1337, + "id": 1368, "nodeType": "ParameterList", "parameters": [], "src": "6646:0:5" }, - "scope": 1418, + "scope": 1449, "src": "6578:110:5", "stateMutability": "nonpayable", "virtual": true, @@ -2919,7 +2919,7 @@ }, { "body": { - "id": 1368, + "id": 1399, "nodeType": "Block", "src": "6886:123:5", "statements": [ @@ -2929,11 +2929,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1353, + "id": 1384, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, + "referencedDeclaration": 1378, "src": "6918:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2946,25 +2946,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1354, + "id": 1385, "name": "_roles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, + "referencedDeclaration": 1189, "src": "6924:6:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" } }, - "id": 1356, + "id": 1387, "indexExpression": { "argumentTypes": null, - "id": 1355, + "id": 1386, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, + "referencedDeclaration": 1378, "src": "6931:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2978,18 +2978,18 @@ "nodeType": "IndexAccess", "src": "6924:12:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage", + "typeIdentifier": "t_struct$_RoleData_$1185_storage", "typeString": "struct AccessControl.RoleData storage ref" } }, - "id": 1357, + "id": 1388, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "adminRole", "nodeType": "MemberAccess", - "referencedDeclaration": 1153, + "referencedDeclaration": 1184, "src": "6924:22:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2998,11 +2998,11 @@ }, { "argumentTypes": null, - "id": 1358, + "id": 1389, "name": "adminRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1349, + "referencedDeclaration": 1380, "src": "6948:9:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3025,18 +3025,18 @@ "typeString": "bytes32" } ], - "id": 1352, + "id": 1383, "name": "RoleAdminChanged", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1170, + "referencedDeclaration": 1201, "src": "6901:16:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$", "typeString": "function (bytes32,bytes32,bytes32)" } }, - "id": 1359, + "id": 1390, "isConstant": false, "isLValue": false, "isPure": false, @@ -3051,14 +3051,14 @@ "typeString": "tuple()" } }, - "id": 1360, + "id": 1391, "nodeType": "EmitStatement", "src": "6896:62:5" }, { "expression": { "argumentTypes": null, - "id": 1366, + "id": 1397, "isConstant": false, "isLValue": false, "isPure": false, @@ -3069,25 +3069,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1361, + "id": 1392, "name": "_roles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, + "referencedDeclaration": 1189, "src": "6968:6:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" } }, - "id": 1363, + "id": 1394, "indexExpression": { "argumentTypes": null, - "id": 1362, + "id": 1393, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, + "referencedDeclaration": 1378, "src": "6975:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3101,18 +3101,18 @@ "nodeType": "IndexAccess", "src": "6968:12:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage", + "typeIdentifier": "t_struct$_RoleData_$1185_storage", "typeString": "struct AccessControl.RoleData storage ref" } }, - "id": 1364, + "id": 1395, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "adminRole", "nodeType": "MemberAccess", - "referencedDeclaration": 1153, + "referencedDeclaration": 1184, "src": "6968:22:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3123,11 +3123,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1365, + "id": 1396, "name": "adminRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1349, + "referencedDeclaration": 1380, "src": "6993:9:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3140,19 +3140,19 @@ "typeString": "bytes32" } }, - "id": 1367, + "id": 1398, "nodeType": "ExpressionStatement", "src": "6968:34:5" } ] }, "documentation": { - "id": 1345, + "id": 1376, "nodeType": "StructuredDocumentation", "src": "6694:114:5", "text": " @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event." }, - "id": 1369, + "id": 1400, "implemented": true, "kind": "function", "modifiers": [], @@ -3160,17 +3160,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1350, + "id": 1381, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1347, + "id": 1378, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1369, + "scope": 1400, "src": "6836:12:5", "stateVariable": false, "storageLocation": "default", @@ -3179,7 +3179,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1346, + "id": 1377, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6836:7:5", @@ -3193,12 +3193,12 @@ }, { "constant": false, - "id": 1349, + "id": 1380, "mutability": "mutable", "name": "adminRole", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1369, + "scope": 1400, "src": "6850:17:5", "stateVariable": false, "storageLocation": "default", @@ -3207,7 +3207,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1348, + "id": 1379, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6850:7:5", @@ -3223,12 +3223,12 @@ "src": "6835:33:5" }, "returnParameters": { - "id": 1351, + "id": 1382, "nodeType": "ParameterList", "parameters": [], "src": "6886:0:5" }, - "scope": 1418, + "scope": 1449, "src": "6813:196:5", "stateMutability": "nonpayable", "virtual": true, @@ -3236,7 +3236,7 @@ }, { "body": { - "id": 1392, + "id": 1423, "nodeType": "Block", "src": "7074:125:5", "statements": [ @@ -3246,11 +3246,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1381, + "id": 1412, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1373, + "referencedDeclaration": 1404, "src": "7113:7:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3271,25 +3271,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1376, + "id": 1407, "name": "_roles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, + "referencedDeclaration": 1189, "src": "7088:6:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" } }, - "id": 1378, + "id": 1409, "indexExpression": { "argumentTypes": null, - "id": 1377, + "id": 1408, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1371, + "referencedDeclaration": 1402, "src": "7095:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3303,39 +3303,39 @@ "nodeType": "IndexAccess", "src": "7088:12:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage", + "typeIdentifier": "t_struct$_RoleData_$1185_storage", "typeString": "struct AccessControl.RoleData storage ref" } }, - "id": 1379, + "id": 1410, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "members", "nodeType": "MemberAccess", - "referencedDeclaration": 1151, + "referencedDeclaration": 1182, "src": "7088:20:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1380, + "id": 1411, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, + "referencedDeclaration": 3970, "src": "7088:24:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 1382, + "id": 1413, "isConstant": false, "isLValue": false, "isPure": false, @@ -3351,11 +3351,11 @@ } }, "falseBody": null, - "id": 1391, + "id": 1422, "nodeType": "IfStatement", "src": "7084:109:5", "trueBody": { - "id": 1390, + "id": 1421, "nodeType": "Block", "src": "7123:70:5", "statements": [ @@ -3365,11 +3365,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1384, + "id": 1415, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1371, + "referencedDeclaration": 1402, "src": "7154:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3378,11 +3378,11 @@ }, { "argumentTypes": null, - "id": 1385, + "id": 1416, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1373, + "referencedDeclaration": 1404, "src": "7160:7:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3394,18 +3394,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1386, + "id": 1417, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "7169:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1387, + "id": 1418, "isConstant": false, "isLValue": false, "isPure": false, @@ -3436,18 +3436,18 @@ "typeString": "address payable" } ], - "id": 1383, + "id": 1414, "name": "RoleGranted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1179, + "referencedDeclaration": 1210, "src": "7142:11:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", "typeString": "function (bytes32,address,address)" } }, - "id": 1388, + "id": 1419, "isConstant": false, "isLValue": false, "isPure": false, @@ -3462,7 +3462,7 @@ "typeString": "tuple()" } }, - "id": 1389, + "id": 1420, "nodeType": "EmitStatement", "src": "7137:45:5" } @@ -3472,7 +3472,7 @@ ] }, "documentation": null, - "id": 1393, + "id": 1424, "implemented": true, "kind": "function", "modifiers": [], @@ -3480,17 +3480,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1374, + "id": 1405, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1371, + "id": 1402, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1393, + "scope": 1424, "src": "7035:12:5", "stateVariable": false, "storageLocation": "default", @@ -3499,7 +3499,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1370, + "id": 1401, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7035:7:5", @@ -3513,12 +3513,12 @@ }, { "constant": false, - "id": 1373, + "id": 1404, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1393, + "scope": 1424, "src": "7049:15:5", "stateVariable": false, "storageLocation": "default", @@ -3527,7 +3527,7 @@ "typeString": "address" }, "typeName": { - "id": 1372, + "id": 1403, "name": "address", "nodeType": "ElementaryTypeName", "src": "7049:7:5", @@ -3544,12 +3544,12 @@ "src": "7034:31:5" }, "returnParameters": { - "id": 1375, + "id": 1406, "nodeType": "ParameterList", "parameters": [], "src": "7074:0:5" }, - "scope": 1418, + "scope": 1449, "src": "7015:184:5", "stateMutability": "nonpayable", "virtual": false, @@ -3557,7 +3557,7 @@ }, { "body": { - "id": 1416, + "id": 1447, "nodeType": "Block", "src": "7265:128:5", "statements": [ @@ -3567,11 +3567,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1405, + "id": 1436, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1397, + "referencedDeclaration": 1428, "src": "7307:7:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3592,25 +3592,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1400, + "id": 1431, "name": "_roles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, + "referencedDeclaration": 1189, "src": "7279:6:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" } }, - "id": 1402, + "id": 1433, "indexExpression": { "argumentTypes": null, - "id": 1401, + "id": 1432, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1395, + "referencedDeclaration": 1426, "src": "7286:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3624,39 +3624,39 @@ "nodeType": "IndexAccess", "src": "7279:12:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage", + "typeIdentifier": "t_struct$_RoleData_$1185_storage", "typeString": "struct AccessControl.RoleData storage ref" } }, - "id": 1403, + "id": 1434, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "members", "nodeType": "MemberAccess", - "referencedDeclaration": 1151, + "referencedDeclaration": 1182, "src": "7279:20:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1404, + "id": 1435, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 3962, + "referencedDeclaration": 3993, "src": "7279:27:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 1406, + "id": 1437, "isConstant": false, "isLValue": false, "isPure": false, @@ -3672,11 +3672,11 @@ } }, "falseBody": null, - "id": 1415, + "id": 1446, "nodeType": "IfStatement", "src": "7275:112:5", "trueBody": { - "id": 1414, + "id": 1445, "nodeType": "Block", "src": "7317:70:5", "statements": [ @@ -3686,11 +3686,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1408, + "id": 1439, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1395, + "referencedDeclaration": 1426, "src": "7348:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3699,11 +3699,11 @@ }, { "argumentTypes": null, - "id": 1409, + "id": 1440, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1397, + "referencedDeclaration": 1428, "src": "7354:7:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3715,18 +3715,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1410, + "id": 1441, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "7363:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1411, + "id": 1442, "isConstant": false, "isLValue": false, "isPure": false, @@ -3757,18 +3757,18 @@ "typeString": "address payable" } ], - "id": 1407, + "id": 1438, "name": "RoleRevoked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1188, + "referencedDeclaration": 1219, "src": "7336:11:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", "typeString": "function (bytes32,address,address)" } }, - "id": 1412, + "id": 1443, "isConstant": false, "isLValue": false, "isPure": false, @@ -3783,7 +3783,7 @@ "typeString": "tuple()" } }, - "id": 1413, + "id": 1444, "nodeType": "EmitStatement", "src": "7331:45:5" } @@ -3793,7 +3793,7 @@ ] }, "documentation": null, - "id": 1417, + "id": 1448, "implemented": true, "kind": "function", "modifiers": [], @@ -3801,17 +3801,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1398, + "id": 1429, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1395, + "id": 1426, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1417, + "scope": 1448, "src": "7226:12:5", "stateVariable": false, "storageLocation": "default", @@ -3820,7 +3820,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1394, + "id": 1425, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7226:7:5", @@ -3834,12 +3834,12 @@ }, { "constant": false, - "id": 1397, + "id": 1428, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1417, + "scope": 1448, "src": "7240:15:5", "stateVariable": false, "storageLocation": "default", @@ -3848,7 +3848,7 @@ "typeString": "address" }, "typeName": { - "id": 1396, + "id": 1427, "name": "address", "nodeType": "ElementaryTypeName", "src": "7240:7:5", @@ -3865,19 +3865,19 @@ "src": "7225:31:5" }, "returnParameters": { - "id": 1399, + "id": 1430, "nodeType": "ParameterList", "parameters": [], "src": "7265:0:5" }, - "scope": 1418, + "scope": 1449, "src": "7205:188:5", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" } ], - "scope": 1419, + "scope": 1450, "src": "1433:5962:5" } ], @@ -3887,15 +3887,15 @@ "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", "exportedSymbols": { "AccessControl": [ - 1418 + 1449 ] }, - "id": 1419, + "id": 1450, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1137, + "id": 1168, "literals": [ "solidity", "^", @@ -3908,10 +3908,10 @@ { "absolutePath": "@openzeppelin/contracts/utils/EnumerableSet.sol", "file": "../utils/EnumerableSet.sol", - "id": 1138, + "id": 1169, "nodeType": "ImportDirective", - "scope": 1419, - "sourceUnit": 4121, + "scope": 1450, + "sourceUnit": 4152, "src": "58:36:5", "symbolAliases": [], "unitAlias": "" @@ -3919,10 +3919,10 @@ { "absolutePath": "@openzeppelin/contracts/utils/Address.sol", "file": "../utils/Address.sol", - "id": 1139, + "id": 1170, "nodeType": "ImportDirective", - "scope": 1419, - "sourceUnit": 3221, + "scope": 1450, + "sourceUnit": 3252, "src": "95:30:5", "symbolAliases": [], "unitAlias": "" @@ -3930,10 +3930,10 @@ { "absolutePath": "@openzeppelin/contracts/GSN/Context.sol", "file": "../GSN/Context.sol", - "id": 1140, + "id": 1171, "nodeType": "ImportDirective", - "scope": 1419, - "sourceUnit": 1136, + "scope": 1450, + "sourceUnit": 1167, "src": "126:28:5", "symbolAliases": [], "unitAlias": "" @@ -3945,51 +3945,51 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1142, + "id": 1173, "name": "Context", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1135, + "referencedDeclaration": 1166, "src": "1468:7:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$1135", + "typeIdentifier": "t_contract$_Context_$1166", "typeString": "contract Context" } }, - "id": 1143, + "id": 1174, "nodeType": "InheritanceSpecifier", "src": "1468:7:5" } ], "contractDependencies": [ - 1135 + 1166 ], "contractKind": "contract", "documentation": { - "id": 1141, + "id": 1172, "nodeType": "StructuredDocumentation", "src": "156:1276:5", "text": " @dev Contract module that allows children to implement role-based access\n control mechanisms.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```\n function foo() public {\n require(hasRole(MY_ROLE, msg.sender));\n ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it." }, "fullyImplemented": true, - "id": 1418, + "id": 1449, "linearizedBaseContracts": [ - 1418, - 1135 + 1449, + 1166 ], "name": "AccessControl", "nodeType": "ContractDefinition", "nodes": [ { - "id": 1146, + "id": 1177, "libraryName": { "contractScope": null, - "id": 1144, + "id": 1175, "name": "EnumerableSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4120, + "referencedDeclaration": 4151, "src": "1488:13:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_EnumerableSet_$4120", + "typeIdentifier": "t_contract$_EnumerableSet_$4151", "typeString": "library EnumerableSet" } }, @@ -3997,35 +3997,35 @@ "src": "1482:49:5", "typeName": { "contractScope": null, - "id": 1145, + "id": 1176, "name": "EnumerableSet.AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, + "referencedDeclaration": 3947, "src": "1506:24:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } } }, { - "id": 1149, + "id": 1180, "libraryName": { "contractScope": null, - "id": 1147, + "id": 1178, "name": "Address", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3220, + "referencedDeclaration": 3251, "src": "1542:7:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$3220", + "typeIdentifier": "t_contract$_Address_$3251", "typeString": "library Address" } }, "nodeType": "UsingForDirective", "src": "1536:26:5", "typeName": { - "id": 1148, + "id": 1179, "name": "address", "nodeType": "ElementaryTypeName", "src": "1554:7:5", @@ -4038,32 +4038,32 @@ }, { "canonicalName": "AccessControl.RoleData", - "id": 1154, + "id": 1185, "members": [ { "constant": false, - "id": 1151, + "id": 1182, "mutability": "mutable", "name": "members", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1154, + "scope": 1185, "src": "1594:32:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" }, "typeName": { "contractScope": null, - "id": 1150, + "id": 1181, "name": "EnumerableSet.AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, + "referencedDeclaration": 3947, "src": "1594:24:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } }, @@ -4072,12 +4072,12 @@ }, { "constant": false, - "id": 1153, + "id": 1184, "mutability": "mutable", "name": "adminRole", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1154, + "scope": 1185, "src": "1636:17:5", "stateVariable": false, "storageLocation": "default", @@ -4086,7 +4086,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1152, + "id": 1183, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1636:7:5", @@ -4101,29 +4101,29 @@ ], "name": "RoleData", "nodeType": "StructDefinition", - "scope": 1418, + "scope": 1449, "src": "1568:92:5", "visibility": "public" }, { "constant": false, - "id": 1158, + "id": 1189, "mutability": "mutable", "name": "_roles", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1418, + "scope": 1449, "src": "1666:44:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData)" }, "typeName": { - "id": 1157, + "id": 1188, "keyType": { - "id": 1155, + "id": 1186, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1675:7:5", @@ -4135,18 +4135,18 @@ "nodeType": "Mapping", "src": "1666:29:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData)" }, "valueType": { "contractScope": null, - "id": 1156, + "id": 1187, "name": "RoleData", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1154, + "referencedDeclaration": 1185, "src": "1686:8:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage_ptr", + "typeIdentifier": "t_struct$_RoleData_$1185_storage_ptr", "typeString": "struct AccessControl.RoleData" } } @@ -4157,12 +4157,12 @@ { "constant": true, "functionSelector": "a217fddf", - "id": 1161, + "id": 1192, "mutability": "constant", "name": "DEFAULT_ADMIN_ROLE", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1418, + "scope": 1449, "src": "1717:49:5", "stateVariable": true, "storageLocation": "default", @@ -4171,7 +4171,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1159, + "id": 1190, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1717:7:5", @@ -4183,7 +4183,7 @@ "value": { "argumentTypes": null, "hexValue": "30783030", - "id": 1160, + "id": 1191, "isConstant": false, "isLValue": false, "isPure": true, @@ -4203,27 +4203,27 @@ { "anonymous": false, "documentation": { - "id": 1162, + "id": 1193, "nodeType": "StructuredDocumentation", "src": "1773:292:5", "text": " @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this.\n _Available since v3.1._" }, - "id": 1170, + "id": 1201, "name": "RoleAdminChanged", "nodeType": "EventDefinition", "parameters": { - "id": 1169, + "id": 1200, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1164, + "id": 1195, "indexed": true, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1170, + "scope": 1201, "src": "2093:20:5", "stateVariable": false, "storageLocation": "default", @@ -4232,7 +4232,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1163, + "id": 1194, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2093:7:5", @@ -4246,13 +4246,13 @@ }, { "constant": false, - "id": 1166, + "id": 1197, "indexed": true, "mutability": "mutable", "name": "previousAdminRole", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1170, + "scope": 1201, "src": "2115:33:5", "stateVariable": false, "storageLocation": "default", @@ -4261,7 +4261,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1165, + "id": 1196, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2115:7:5", @@ -4275,13 +4275,13 @@ }, { "constant": false, - "id": 1168, + "id": 1199, "indexed": true, "mutability": "mutable", "name": "newAdminRole", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1170, + "scope": 1201, "src": "2150:28:5", "stateVariable": false, "storageLocation": "default", @@ -4290,7 +4290,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1167, + "id": 1198, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2150:7:5", @@ -4310,27 +4310,27 @@ { "anonymous": false, "documentation": { - "id": 1171, + "id": 1202, "nodeType": "StructuredDocumentation", "src": "2186:198:5", "text": " @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call, an admin role\n bearer except when using {_setupRole}." }, - "id": 1179, + "id": 1210, "name": "RoleGranted", "nodeType": "EventDefinition", "parameters": { - "id": 1178, + "id": 1209, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1173, + "id": 1204, "indexed": true, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1179, + "scope": 1210, "src": "2407:20:5", "stateVariable": false, "storageLocation": "default", @@ -4339,7 +4339,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1172, + "id": 1203, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2407:7:5", @@ -4353,13 +4353,13 @@ }, { "constant": false, - "id": 1175, + "id": 1206, "indexed": true, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1179, + "scope": 1210, "src": "2429:23:5", "stateVariable": false, "storageLocation": "default", @@ -4368,7 +4368,7 @@ "typeString": "address" }, "typeName": { - "id": 1174, + "id": 1205, "name": "address", "nodeType": "ElementaryTypeName", "src": "2429:7:5", @@ -4383,13 +4383,13 @@ }, { "constant": false, - "id": 1177, + "id": 1208, "indexed": true, "mutability": "mutable", "name": "sender", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1179, + "scope": 1210, "src": "2454:22:5", "stateVariable": false, "storageLocation": "default", @@ -4398,7 +4398,7 @@ "typeString": "address" }, "typeName": { - "id": 1176, + "id": 1207, "name": "address", "nodeType": "ElementaryTypeName", "src": "2454:7:5", @@ -4419,27 +4419,27 @@ { "anonymous": false, "documentation": { - "id": 1180, + "id": 1211, "nodeType": "StructuredDocumentation", "src": "2484:275:5", "text": " @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n - if using `revokeRole`, it is the admin role bearer\n - if using `renounceRole`, it is the role bearer (i.e. `account`)" }, - "id": 1188, + "id": 1219, "name": "RoleRevoked", "nodeType": "EventDefinition", "parameters": { - "id": 1187, + "id": 1218, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1182, + "id": 1213, "indexed": true, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1188, + "scope": 1219, "src": "2782:20:5", "stateVariable": false, "storageLocation": "default", @@ -4448,7 +4448,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1181, + "id": 1212, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2782:7:5", @@ -4462,13 +4462,13 @@ }, { "constant": false, - "id": 1184, + "id": 1215, "indexed": true, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1188, + "scope": 1219, "src": "2804:23:5", "stateVariable": false, "storageLocation": "default", @@ -4477,7 +4477,7 @@ "typeString": "address" }, "typeName": { - "id": 1183, + "id": 1214, "name": "address", "nodeType": "ElementaryTypeName", "src": "2804:7:5", @@ -4492,13 +4492,13 @@ }, { "constant": false, - "id": 1186, + "id": 1217, "indexed": true, "mutability": "mutable", "name": "sender", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1188, + "scope": 1219, "src": "2829:22:5", "stateVariable": false, "storageLocation": "default", @@ -4507,7 +4507,7 @@ "typeString": "address" }, "typeName": { - "id": 1185, + "id": 1216, "name": "address", "nodeType": "ElementaryTypeName", "src": "2829:7:5", @@ -4527,7 +4527,7 @@ }, { "body": { - "id": 1206, + "id": 1237, "nodeType": "Block", "src": "3015:62:5", "statements": [ @@ -4537,11 +4537,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1203, + "id": 1234, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1193, + "referencedDeclaration": 1224, "src": "3062:7:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4562,25 +4562,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1198, + "id": 1229, "name": "_roles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, + "referencedDeclaration": 1189, "src": "3032:6:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" } }, - "id": 1200, + "id": 1231, "indexExpression": { "argumentTypes": null, - "id": 1199, + "id": 1230, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1191, + "referencedDeclaration": 1222, "src": "3039:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -4594,39 +4594,39 @@ "nodeType": "IndexAccess", "src": "3032:12:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage", + "typeIdentifier": "t_struct$_RoleData_$1185_storage", "typeString": "struct AccessControl.RoleData storage ref" } }, - "id": 1201, + "id": 1232, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "members", "nodeType": "MemberAccess", - "referencedDeclaration": 1151, + "referencedDeclaration": 1182, "src": "3032:20:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1202, + "id": 1233, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, + "referencedDeclaration": 4016, "src": "3032:29:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 1204, + "id": 1235, "isConstant": false, "isLValue": false, "isPure": false, @@ -4641,21 +4641,21 @@ "typeString": "bool" } }, - "functionReturnParameters": 1197, - "id": 1205, + "functionReturnParameters": 1228, + "id": 1236, "nodeType": "Return", "src": "3025:45:5" } ] }, "documentation": { - "id": 1189, + "id": 1220, "nodeType": "StructuredDocumentation", "src": "2859:76:5", "text": " @dev Returns `true` if `account` has been granted `role`." }, "functionSelector": "91d14854", - "id": 1207, + "id": 1238, "implemented": true, "kind": "function", "modifiers": [], @@ -4663,17 +4663,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1194, + "id": 1225, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1191, + "id": 1222, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1207, + "scope": 1238, "src": "2957:12:5", "stateVariable": false, "storageLocation": "default", @@ -4682,7 +4682,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1190, + "id": 1221, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2957:7:5", @@ -4696,12 +4696,12 @@ }, { "constant": false, - "id": 1193, + "id": 1224, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1207, + "scope": 1238, "src": "2971:15:5", "stateVariable": false, "storageLocation": "default", @@ -4710,7 +4710,7 @@ "typeString": "address" }, "typeName": { - "id": 1192, + "id": 1223, "name": "address", "nodeType": "ElementaryTypeName", "src": "2971:7:5", @@ -4727,17 +4727,17 @@ "src": "2956:31:5" }, "returnParameters": { - "id": 1197, + "id": 1228, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1196, + "id": 1227, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1207, + "scope": 1238, "src": "3009:4:5", "stateVariable": false, "storageLocation": "default", @@ -4746,7 +4746,7 @@ "typeString": "bool" }, "typeName": { - "id": 1195, + "id": 1226, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3009:4:5", @@ -4761,7 +4761,7 @@ ], "src": "3008:6:5" }, - "scope": 1418, + "scope": 1449, "src": "2940:137:5", "stateMutability": "view", "virtual": false, @@ -4769,7 +4769,7 @@ }, { "body": { - "id": 1222, + "id": 1253, "nodeType": "Block", "src": "3317:53:5", "statements": [ @@ -4785,25 +4785,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1215, + "id": 1246, "name": "_roles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, + "referencedDeclaration": 1189, "src": "3334:6:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" } }, - "id": 1217, + "id": 1248, "indexExpression": { "argumentTypes": null, - "id": 1216, + "id": 1247, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1210, + "referencedDeclaration": 1241, "src": "3341:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -4817,39 +4817,39 @@ "nodeType": "IndexAccess", "src": "3334:12:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage", + "typeIdentifier": "t_struct$_RoleData_$1185_storage", "typeString": "struct AccessControl.RoleData storage ref" } }, - "id": 1218, + "id": 1249, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "members", "nodeType": "MemberAccess", - "referencedDeclaration": 1151, + "referencedDeclaration": 1182, "src": "3334:20:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1219, + "id": 1250, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": 3999, + "referencedDeclaration": 4030, "src": "3334:27:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)" } }, - "id": 1220, + "id": 1251, "isConstant": false, "isLValue": false, "isPure": false, @@ -4864,21 +4864,21 @@ "typeString": "uint256" } }, - "functionReturnParameters": 1214, - "id": 1221, + "functionReturnParameters": 1245, + "id": 1252, "nodeType": "Return", "src": "3327:36:5" } ] }, "documentation": { - "id": 1208, + "id": 1239, "nodeType": "StructuredDocumentation", "src": "3083:157:5", "text": " @dev Returns the number of accounts that have `role`. Can be used\n together with {getRoleMember} to enumerate all bearers of a role." }, "functionSelector": "ca15c873", - "id": 1223, + "id": 1254, "implemented": true, "kind": "function", "modifiers": [], @@ -4886,17 +4886,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1211, + "id": 1242, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1210, + "id": 1241, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1223, + "scope": 1254, "src": "3273:12:5", "stateVariable": false, "storageLocation": "default", @@ -4905,7 +4905,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1209, + "id": 1240, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3273:7:5", @@ -4921,17 +4921,17 @@ "src": "3272:14:5" }, "returnParameters": { - "id": 1214, + "id": 1245, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1213, + "id": 1244, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1223, + "scope": 1254, "src": "3308:7:5", "stateVariable": false, "storageLocation": "default", @@ -4940,7 +4940,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1212, + "id": 1243, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3308:7:5", @@ -4955,7 +4955,7 @@ ], "src": "3307:9:5" }, - "scope": 1418, + "scope": 1449, "src": "3245:125:5", "stateMutability": "view", "virtual": false, @@ -4963,7 +4963,7 @@ }, { "body": { - "id": 1241, + "id": 1272, "nodeType": "Block", "src": "4037:54:5", "statements": [ @@ -4973,11 +4973,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1238, + "id": 1269, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1228, + "referencedDeclaration": 1259, "src": "4078:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4998,25 +4998,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1233, + "id": 1264, "name": "_roles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, + "referencedDeclaration": 1189, "src": "4054:6:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" } }, - "id": 1235, + "id": 1266, "indexExpression": { "argumentTypes": null, - "id": 1234, + "id": 1265, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1226, + "referencedDeclaration": 1257, "src": "4061:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -5030,39 +5030,39 @@ "nodeType": "IndexAccess", "src": "4054:12:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage", + "typeIdentifier": "t_struct$_RoleData_$1185_storage", "typeString": "struct AccessControl.RoleData storage ref" } }, - "id": 1236, + "id": 1267, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "members", "nodeType": "MemberAccess", - "referencedDeclaration": 1151, + "referencedDeclaration": 1182, "src": "4054:20:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1237, + "id": 1268, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "at", "nodeType": "MemberAccess", - "referencedDeclaration": 4022, + "referencedDeclaration": 4053, "src": "4054:23:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" } }, - "id": 1239, + "id": 1270, "isConstant": false, "isLValue": false, "isPure": false, @@ -5077,21 +5077,21 @@ "typeString": "address" } }, - "functionReturnParameters": 1232, - "id": 1240, + "functionReturnParameters": 1263, + "id": 1271, "nodeType": "Return", "src": "4047:37:5" } ] }, "documentation": { - "id": 1224, + "id": 1255, "nodeType": "StructuredDocumentation", "src": "3376:574:5", "text": " @dev Returns one of the accounts that have `role`. `index` must be a\n value between 0 and {getRoleMemberCount}, non-inclusive.\n Role bearers are not sorted in any particular way, and their ordering may\n change at any point.\n WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n you perform all queries on the same block. See the following\n https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n for more information." }, "functionSelector": "9010d07c", - "id": 1242, + "id": 1273, "implemented": true, "kind": "function", "modifiers": [], @@ -5099,17 +5099,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1229, + "id": 1260, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1226, + "id": 1257, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1242, + "scope": 1273, "src": "3978:12:5", "stateVariable": false, "storageLocation": "default", @@ -5118,7 +5118,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1225, + "id": 1256, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3978:7:5", @@ -5132,12 +5132,12 @@ }, { "constant": false, - "id": 1228, + "id": 1259, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1242, + "scope": 1273, "src": "3992:13:5", "stateVariable": false, "storageLocation": "default", @@ -5146,7 +5146,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1227, + "id": 1258, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3992:7:5", @@ -5162,17 +5162,17 @@ "src": "3977:29:5" }, "returnParameters": { - "id": 1232, + "id": 1263, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1231, + "id": 1262, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1242, + "scope": 1273, "src": "4028:7:5", "stateVariable": false, "storageLocation": "default", @@ -5181,7 +5181,7 @@ "typeString": "address" }, "typeName": { - "id": 1230, + "id": 1261, "name": "address", "nodeType": "ElementaryTypeName", "src": "4028:7:5", @@ -5197,7 +5197,7 @@ ], "src": "4027:9:5" }, - "scope": 1418, + "scope": 1449, "src": "3955:136:5", "stateMutability": "view", "virtual": false, @@ -5205,7 +5205,7 @@ }, { "body": { - "id": 1255, + "id": 1286, "nodeType": "Block", "src": "4338:46:5", "statements": [ @@ -5216,25 +5216,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1250, + "id": 1281, "name": "_roles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, + "referencedDeclaration": 1189, "src": "4355:6:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" } }, - "id": 1252, + "id": 1283, "indexExpression": { "argumentTypes": null, - "id": 1251, + "id": 1282, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, + "referencedDeclaration": 1276, "src": "4362:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -5248,39 +5248,39 @@ "nodeType": "IndexAccess", "src": "4355:12:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage", + "typeIdentifier": "t_struct$_RoleData_$1185_storage", "typeString": "struct AccessControl.RoleData storage ref" } }, - "id": 1253, + "id": 1284, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "adminRole", "nodeType": "MemberAccess", - "referencedDeclaration": 1153, + "referencedDeclaration": 1184, "src": "4355:22:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 1249, - "id": 1254, + "functionReturnParameters": 1280, + "id": 1285, "nodeType": "Return", "src": "4348:29:5" } ] }, "documentation": { - "id": 1243, + "id": 1274, "nodeType": "StructuredDocumentation", "src": "4097:170:5", "text": " @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}." }, "functionSelector": "248a9ca3", - "id": 1256, + "id": 1287, "implemented": true, "kind": "function", "modifiers": [], @@ -5288,17 +5288,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1246, + "id": 1277, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1245, + "id": 1276, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1256, + "scope": 1287, "src": "4294:12:5", "stateVariable": false, "storageLocation": "default", @@ -5307,7 +5307,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1244, + "id": 1275, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4294:7:5", @@ -5323,17 +5323,17 @@ "src": "4293:14:5" }, "returnParameters": { - "id": 1249, + "id": 1280, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1248, + "id": 1279, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1256, + "scope": 1287, "src": "4329:7:5", "stateVariable": false, "storageLocation": "default", @@ -5342,7 +5342,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1247, + "id": 1278, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4329:7:5", @@ -5357,7 +5357,7 @@ ], "src": "4328:9:5" }, - "scope": 1418, + "scope": 1449, "src": "4272:112:5", "stateMutability": "view", "virtual": false, @@ -5365,7 +5365,7 @@ }, { "body": { - "id": 1281, + "id": 1312, "nodeType": "Block", "src": "4699:158:5", "statements": [ @@ -5382,25 +5382,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1266, + "id": 1297, "name": "_roles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, + "referencedDeclaration": 1189, "src": "4725:6:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" } }, - "id": 1268, + "id": 1299, "indexExpression": { "argumentTypes": null, - "id": 1267, + "id": 1298, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1259, + "referencedDeclaration": 1290, "src": "4732:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -5414,18 +5414,18 @@ "nodeType": "IndexAccess", "src": "4725:12:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage", + "typeIdentifier": "t_struct$_RoleData_$1185_storage", "typeString": "struct AccessControl.RoleData storage ref" } }, - "id": 1269, + "id": 1300, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "adminRole", "nodeType": "MemberAccess", - "referencedDeclaration": 1153, + "referencedDeclaration": 1184, "src": "4725:22:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -5437,18 +5437,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1270, + "id": 1301, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "4749:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1271, + "id": 1302, "isConstant": false, "isLValue": false, "isPure": false, @@ -5475,18 +5475,18 @@ "typeString": "address payable" } ], - "id": 1265, + "id": 1296, "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, + "referencedDeclaration": 1238, "src": "4717:7:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) view returns (bool)" } }, - "id": 1272, + "id": 1303, "isConstant": false, "isLValue": false, "isPure": false, @@ -5504,7 +5504,7 @@ { "argumentTypes": null, "hexValue": "416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e74", - "id": 1273, + "id": 1304, "isConstant": false, "isLValue": false, "isPure": true, @@ -5531,7 +5531,7 @@ "typeString": "literal_string \"AccessControl: sender must be an admin to grant\"" } ], - "id": 1264, + "id": 1295, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5545,7 +5545,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1274, + "id": 1305, "isConstant": false, "isLValue": false, "isPure": false, @@ -5560,7 +5560,7 @@ "typeString": "tuple()" } }, - "id": 1275, + "id": 1306, "nodeType": "ExpressionStatement", "src": "4709:105:5" }, @@ -5570,11 +5570,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1277, + "id": 1308, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1259, + "referencedDeclaration": 1290, "src": "4836:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -5583,11 +5583,11 @@ }, { "argumentTypes": null, - "id": 1278, + "id": 1309, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1261, + "referencedDeclaration": 1292, "src": "4842:7:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5606,18 +5606,18 @@ "typeString": "address" } ], - "id": 1276, + "id": 1307, "name": "_grantRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1393, + "referencedDeclaration": 1424, "src": "4825:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 1279, + "id": 1310, "isConstant": false, "isLValue": false, "isPure": false, @@ -5632,20 +5632,20 @@ "typeString": "tuple()" } }, - "id": 1280, + "id": 1311, "nodeType": "ExpressionStatement", "src": "4825:25:5" } ] }, "documentation": { - "id": 1257, + "id": 1288, "nodeType": "StructuredDocumentation", "src": "4390:239:5", "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role." }, "functionSelector": "2f2ff15d", - "id": 1282, + "id": 1313, "implemented": true, "kind": "function", "modifiers": [], @@ -5653,17 +5653,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1262, + "id": 1293, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1259, + "id": 1290, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1282, + "scope": 1313, "src": "4653:12:5", "stateVariable": false, "storageLocation": "default", @@ -5672,7 +5672,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1258, + "id": 1289, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4653:7:5", @@ -5686,12 +5686,12 @@ }, { "constant": false, - "id": 1261, + "id": 1292, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1282, + "scope": 1313, "src": "4667:15:5", "stateVariable": false, "storageLocation": "default", @@ -5700,7 +5700,7 @@ "typeString": "address" }, "typeName": { - "id": 1260, + "id": 1291, "name": "address", "nodeType": "ElementaryTypeName", "src": "4667:7:5", @@ -5717,12 +5717,12 @@ "src": "4652:31:5" }, "returnParameters": { - "id": 1263, + "id": 1294, "nodeType": "ParameterList", "parameters": [], "src": "4699:0:5" }, - "scope": 1418, + "scope": 1449, "src": "4634:223:5", "stateMutability": "nonpayable", "virtual": true, @@ -5730,7 +5730,7 @@ }, { "body": { - "id": 1307, + "id": 1338, "nodeType": "Block", "src": "5157:160:5", "statements": [ @@ -5747,25 +5747,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1292, + "id": 1323, "name": "_roles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, + "referencedDeclaration": 1189, "src": "5183:6:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" } }, - "id": 1294, + "id": 1325, "indexExpression": { "argumentTypes": null, - "id": 1293, + "id": 1324, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1285, + "referencedDeclaration": 1316, "src": "5190:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -5779,18 +5779,18 @@ "nodeType": "IndexAccess", "src": "5183:12:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage", + "typeIdentifier": "t_struct$_RoleData_$1185_storage", "typeString": "struct AccessControl.RoleData storage ref" } }, - "id": 1295, + "id": 1326, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "adminRole", "nodeType": "MemberAccess", - "referencedDeclaration": 1153, + "referencedDeclaration": 1184, "src": "5183:22:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -5802,18 +5802,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1296, + "id": 1327, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "5207:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1297, + "id": 1328, "isConstant": false, "isLValue": false, "isPure": false, @@ -5840,18 +5840,18 @@ "typeString": "address payable" } ], - "id": 1291, + "id": 1322, "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, + "referencedDeclaration": 1238, "src": "5175:7:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) view returns (bool)" } }, - "id": 1298, + "id": 1329, "isConstant": false, "isLValue": false, "isPure": false, @@ -5869,7 +5869,7 @@ { "argumentTypes": null, "hexValue": "416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65", - "id": 1299, + "id": 1330, "isConstant": false, "isLValue": false, "isPure": true, @@ -5896,7 +5896,7 @@ "typeString": "literal_string \"AccessControl: sender must be an admin to revoke\"" } ], - "id": 1290, + "id": 1321, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5910,7 +5910,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1300, + "id": 1331, "isConstant": false, "isLValue": false, "isPure": false, @@ -5925,7 +5925,7 @@ "typeString": "tuple()" } }, - "id": 1301, + "id": 1332, "nodeType": "ExpressionStatement", "src": "5167:106:5" }, @@ -5935,11 +5935,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1303, + "id": 1334, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1285, + "referencedDeclaration": 1316, "src": "5296:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -5948,11 +5948,11 @@ }, { "argumentTypes": null, - "id": 1304, + "id": 1335, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1287, + "referencedDeclaration": 1318, "src": "5302:7:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5971,18 +5971,18 @@ "typeString": "address" } ], - "id": 1302, + "id": 1333, "name": "_revokeRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1417, + "referencedDeclaration": 1448, "src": "5284:11:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 1305, + "id": 1336, "isConstant": false, "isLValue": false, "isPure": false, @@ -5997,20 +5997,20 @@ "typeString": "tuple()" } }, - "id": 1306, + "id": 1337, "nodeType": "ExpressionStatement", "src": "5284:26:5" } ] }, "documentation": { - "id": 1283, + "id": 1314, "nodeType": "StructuredDocumentation", "src": "4863:223:5", "text": " @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role." }, "functionSelector": "d547741f", - "id": 1308, + "id": 1339, "implemented": true, "kind": "function", "modifiers": [], @@ -6018,17 +6018,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1288, + "id": 1319, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1285, + "id": 1316, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1308, + "scope": 1339, "src": "5111:12:5", "stateVariable": false, "storageLocation": "default", @@ -6037,7 +6037,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1284, + "id": 1315, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5111:7:5", @@ -6051,12 +6051,12 @@ }, { "constant": false, - "id": 1287, + "id": 1318, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1308, + "scope": 1339, "src": "5125:15:5", "stateVariable": false, "storageLocation": "default", @@ -6065,7 +6065,7 @@ "typeString": "address" }, "typeName": { - "id": 1286, + "id": 1317, "name": "address", "nodeType": "ElementaryTypeName", "src": "5125:7:5", @@ -6082,12 +6082,12 @@ "src": "5110:31:5" }, "returnParameters": { - "id": 1289, + "id": 1320, "nodeType": "ParameterList", "parameters": [], "src": "5157:0:5" }, - "scope": 1418, + "scope": 1449, "src": "5091:226:5", "stateMutability": "nonpayable", "virtual": true, @@ -6095,7 +6095,7 @@ }, { "body": { - "id": 1329, + "id": 1360, "nodeType": "Block", "src": "5876:137:5", "statements": [ @@ -6109,18 +6109,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1320, + "id": 1351, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1317, + "id": 1348, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1313, + "referencedDeclaration": 1344, "src": "5894:7:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6134,18 +6134,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1318, + "id": 1349, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "5905:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1319, + "id": 1350, "isConstant": false, "isLValue": false, "isPure": false, @@ -6169,7 +6169,7 @@ { "argumentTypes": null, "hexValue": "416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66", - "id": 1321, + "id": 1352, "isConstant": false, "isLValue": false, "isPure": true, @@ -6196,7 +6196,7 @@ "typeString": "literal_string \"AccessControl: can only renounce roles for self\"" } ], - "id": 1316, + "id": 1347, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -6210,7 +6210,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1322, + "id": 1353, "isConstant": false, "isLValue": false, "isPure": false, @@ -6225,7 +6225,7 @@ "typeString": "tuple()" } }, - "id": 1323, + "id": 1354, "nodeType": "ExpressionStatement", "src": "5886:83:5" }, @@ -6235,11 +6235,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1325, + "id": 1356, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1311, + "referencedDeclaration": 1342, "src": "5992:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6248,11 +6248,11 @@ }, { "argumentTypes": null, - "id": 1326, + "id": 1357, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1313, + "referencedDeclaration": 1344, "src": "5998:7:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6271,18 +6271,18 @@ "typeString": "address" } ], - "id": 1324, + "id": 1355, "name": "_revokeRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1417, + "referencedDeclaration": 1448, "src": "5980:11:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 1327, + "id": 1358, "isConstant": false, "isLValue": false, "isPure": false, @@ -6297,20 +6297,20 @@ "typeString": "tuple()" } }, - "id": 1328, + "id": 1359, "nodeType": "ExpressionStatement", "src": "5980:26:5" } ] }, "documentation": { - "id": 1309, + "id": 1340, "nodeType": "StructuredDocumentation", "src": "5323:480:5", "text": " @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`." }, "functionSelector": "36568abe", - "id": 1330, + "id": 1361, "implemented": true, "kind": "function", "modifiers": [], @@ -6318,17 +6318,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1314, + "id": 1345, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1311, + "id": 1342, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1330, + "scope": 1361, "src": "5830:12:5", "stateVariable": false, "storageLocation": "default", @@ -6337,7 +6337,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1310, + "id": 1341, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5830:7:5", @@ -6351,12 +6351,12 @@ }, { "constant": false, - "id": 1313, + "id": 1344, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1330, + "scope": 1361, "src": "5844:15:5", "stateVariable": false, "storageLocation": "default", @@ -6365,7 +6365,7 @@ "typeString": "address" }, "typeName": { - "id": 1312, + "id": 1343, "name": "address", "nodeType": "ElementaryTypeName", "src": "5844:7:5", @@ -6382,12 +6382,12 @@ "src": "5829:31:5" }, "returnParameters": { - "id": 1315, + "id": 1346, "nodeType": "ParameterList", "parameters": [], "src": "5876:0:5" }, - "scope": 1418, + "scope": 1449, "src": "5808:205:5", "stateMutability": "nonpayable", "virtual": true, @@ -6395,7 +6395,7 @@ }, { "body": { - "id": 1343, + "id": 1374, "nodeType": "Block", "src": "6646:42:5", "statements": [ @@ -6405,11 +6405,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1339, + "id": 1370, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1333, + "referencedDeclaration": 1364, "src": "6667:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6418,11 +6418,11 @@ }, { "argumentTypes": null, - "id": 1340, + "id": 1371, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1335, + "referencedDeclaration": 1366, "src": "6673:7:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6441,18 +6441,18 @@ "typeString": "address" } ], - "id": 1338, + "id": 1369, "name": "_grantRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1393, + "referencedDeclaration": 1424, "src": "6656:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 1341, + "id": 1372, "isConstant": false, "isLValue": false, "isPure": false, @@ -6467,19 +6467,19 @@ "typeString": "tuple()" } }, - "id": 1342, + "id": 1373, "nodeType": "ExpressionStatement", "src": "6656:25:5" } ] }, "documentation": { - "id": 1331, + "id": 1362, "nodeType": "StructuredDocumentation", "src": "6019:554:5", "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event. Note that unlike {grantRole}, this function doesn't perform any\n checks on the calling account.\n [WARNING]\n ====\n This function should only be called from the constructor when setting\n up the initial roles for the system.\n Using this function in any other way is effectively circumventing the admin\n system imposed by {AccessControl}.\n ====" }, - "id": 1344, + "id": 1375, "implemented": true, "kind": "function", "modifiers": [], @@ -6487,17 +6487,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1336, + "id": 1367, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1333, + "id": 1364, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1344, + "scope": 1375, "src": "6598:12:5", "stateVariable": false, "storageLocation": "default", @@ -6506,7 +6506,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1332, + "id": 1363, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6598:7:5", @@ -6520,12 +6520,12 @@ }, { "constant": false, - "id": 1335, + "id": 1366, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1344, + "scope": 1375, "src": "6612:15:5", "stateVariable": false, "storageLocation": "default", @@ -6534,7 +6534,7 @@ "typeString": "address" }, "typeName": { - "id": 1334, + "id": 1365, "name": "address", "nodeType": "ElementaryTypeName", "src": "6612:7:5", @@ -6551,12 +6551,12 @@ "src": "6597:31:5" }, "returnParameters": { - "id": 1337, + "id": 1368, "nodeType": "ParameterList", "parameters": [], "src": "6646:0:5" }, - "scope": 1418, + "scope": 1449, "src": "6578:110:5", "stateMutability": "nonpayable", "virtual": true, @@ -6564,7 +6564,7 @@ }, { "body": { - "id": 1368, + "id": 1399, "nodeType": "Block", "src": "6886:123:5", "statements": [ @@ -6574,11 +6574,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1353, + "id": 1384, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, + "referencedDeclaration": 1378, "src": "6918:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6591,25 +6591,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1354, + "id": 1385, "name": "_roles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, + "referencedDeclaration": 1189, "src": "6924:6:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" } }, - "id": 1356, + "id": 1387, "indexExpression": { "argumentTypes": null, - "id": 1355, + "id": 1386, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, + "referencedDeclaration": 1378, "src": "6931:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6623,18 +6623,18 @@ "nodeType": "IndexAccess", "src": "6924:12:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage", + "typeIdentifier": "t_struct$_RoleData_$1185_storage", "typeString": "struct AccessControl.RoleData storage ref" } }, - "id": 1357, + "id": 1388, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "adminRole", "nodeType": "MemberAccess", - "referencedDeclaration": 1153, + "referencedDeclaration": 1184, "src": "6924:22:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6643,11 +6643,11 @@ }, { "argumentTypes": null, - "id": 1358, + "id": 1389, "name": "adminRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1349, + "referencedDeclaration": 1380, "src": "6948:9:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6670,18 +6670,18 @@ "typeString": "bytes32" } ], - "id": 1352, + "id": 1383, "name": "RoleAdminChanged", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1170, + "referencedDeclaration": 1201, "src": "6901:16:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$", "typeString": "function (bytes32,bytes32,bytes32)" } }, - "id": 1359, + "id": 1390, "isConstant": false, "isLValue": false, "isPure": false, @@ -6696,14 +6696,14 @@ "typeString": "tuple()" } }, - "id": 1360, + "id": 1391, "nodeType": "EmitStatement", "src": "6896:62:5" }, { "expression": { "argumentTypes": null, - "id": 1366, + "id": 1397, "isConstant": false, "isLValue": false, "isPure": false, @@ -6714,25 +6714,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1361, + "id": 1392, "name": "_roles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, + "referencedDeclaration": 1189, "src": "6968:6:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" } }, - "id": 1363, + "id": 1394, "indexExpression": { "argumentTypes": null, - "id": 1362, + "id": 1393, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, + "referencedDeclaration": 1378, "src": "6975:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6746,18 +6746,18 @@ "nodeType": "IndexAccess", "src": "6968:12:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage", + "typeIdentifier": "t_struct$_RoleData_$1185_storage", "typeString": "struct AccessControl.RoleData storage ref" } }, - "id": 1364, + "id": 1395, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "adminRole", "nodeType": "MemberAccess", - "referencedDeclaration": 1153, + "referencedDeclaration": 1184, "src": "6968:22:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6768,11 +6768,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1365, + "id": 1396, "name": "adminRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1349, + "referencedDeclaration": 1380, "src": "6993:9:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6785,19 +6785,19 @@ "typeString": "bytes32" } }, - "id": 1367, + "id": 1398, "nodeType": "ExpressionStatement", "src": "6968:34:5" } ] }, "documentation": { - "id": 1345, + "id": 1376, "nodeType": "StructuredDocumentation", "src": "6694:114:5", "text": " @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event." }, - "id": 1369, + "id": 1400, "implemented": true, "kind": "function", "modifiers": [], @@ -6805,17 +6805,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1350, + "id": 1381, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1347, + "id": 1378, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1369, + "scope": 1400, "src": "6836:12:5", "stateVariable": false, "storageLocation": "default", @@ -6824,7 +6824,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1346, + "id": 1377, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6836:7:5", @@ -6838,12 +6838,12 @@ }, { "constant": false, - "id": 1349, + "id": 1380, "mutability": "mutable", "name": "adminRole", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1369, + "scope": 1400, "src": "6850:17:5", "stateVariable": false, "storageLocation": "default", @@ -6852,7 +6852,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1348, + "id": 1379, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6850:7:5", @@ -6868,12 +6868,12 @@ "src": "6835:33:5" }, "returnParameters": { - "id": 1351, + "id": 1382, "nodeType": "ParameterList", "parameters": [], "src": "6886:0:5" }, - "scope": 1418, + "scope": 1449, "src": "6813:196:5", "stateMutability": "nonpayable", "virtual": true, @@ -6881,7 +6881,7 @@ }, { "body": { - "id": 1392, + "id": 1423, "nodeType": "Block", "src": "7074:125:5", "statements": [ @@ -6891,11 +6891,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1381, + "id": 1412, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1373, + "referencedDeclaration": 1404, "src": "7113:7:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6916,25 +6916,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1376, + "id": 1407, "name": "_roles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, + "referencedDeclaration": 1189, "src": "7088:6:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" } }, - "id": 1378, + "id": 1409, "indexExpression": { "argumentTypes": null, - "id": 1377, + "id": 1408, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1371, + "referencedDeclaration": 1402, "src": "7095:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6948,39 +6948,39 @@ "nodeType": "IndexAccess", "src": "7088:12:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage", + "typeIdentifier": "t_struct$_RoleData_$1185_storage", "typeString": "struct AccessControl.RoleData storage ref" } }, - "id": 1379, + "id": 1410, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "members", "nodeType": "MemberAccess", - "referencedDeclaration": 1151, + "referencedDeclaration": 1182, "src": "7088:20:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1380, + "id": 1411, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, + "referencedDeclaration": 3970, "src": "7088:24:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 1382, + "id": 1413, "isConstant": false, "isLValue": false, "isPure": false, @@ -6996,11 +6996,11 @@ } }, "falseBody": null, - "id": 1391, + "id": 1422, "nodeType": "IfStatement", "src": "7084:109:5", "trueBody": { - "id": 1390, + "id": 1421, "nodeType": "Block", "src": "7123:70:5", "statements": [ @@ -7010,11 +7010,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1384, + "id": 1415, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1371, + "referencedDeclaration": 1402, "src": "7154:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -7023,11 +7023,11 @@ }, { "argumentTypes": null, - "id": 1385, + "id": 1416, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1373, + "referencedDeclaration": 1404, "src": "7160:7:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7039,18 +7039,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1386, + "id": 1417, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "7169:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1387, + "id": 1418, "isConstant": false, "isLValue": false, "isPure": false, @@ -7081,18 +7081,18 @@ "typeString": "address payable" } ], - "id": 1383, + "id": 1414, "name": "RoleGranted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1179, + "referencedDeclaration": 1210, "src": "7142:11:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", "typeString": "function (bytes32,address,address)" } }, - "id": 1388, + "id": 1419, "isConstant": false, "isLValue": false, "isPure": false, @@ -7107,7 +7107,7 @@ "typeString": "tuple()" } }, - "id": 1389, + "id": 1420, "nodeType": "EmitStatement", "src": "7137:45:5" } @@ -7117,7 +7117,7 @@ ] }, "documentation": null, - "id": 1393, + "id": 1424, "implemented": true, "kind": "function", "modifiers": [], @@ -7125,17 +7125,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1374, + "id": 1405, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1371, + "id": 1402, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1393, + "scope": 1424, "src": "7035:12:5", "stateVariable": false, "storageLocation": "default", @@ -7144,7 +7144,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1370, + "id": 1401, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7035:7:5", @@ -7158,12 +7158,12 @@ }, { "constant": false, - "id": 1373, + "id": 1404, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1393, + "scope": 1424, "src": "7049:15:5", "stateVariable": false, "storageLocation": "default", @@ -7172,7 +7172,7 @@ "typeString": "address" }, "typeName": { - "id": 1372, + "id": 1403, "name": "address", "nodeType": "ElementaryTypeName", "src": "7049:7:5", @@ -7189,12 +7189,12 @@ "src": "7034:31:5" }, "returnParameters": { - "id": 1375, + "id": 1406, "nodeType": "ParameterList", "parameters": [], "src": "7074:0:5" }, - "scope": 1418, + "scope": 1449, "src": "7015:184:5", "stateMutability": "nonpayable", "virtual": false, @@ -7202,7 +7202,7 @@ }, { "body": { - "id": 1416, + "id": 1447, "nodeType": "Block", "src": "7265:128:5", "statements": [ @@ -7212,11 +7212,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1405, + "id": 1436, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1397, + "referencedDeclaration": 1428, "src": "7307:7:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7237,25 +7237,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1400, + "id": 1431, "name": "_roles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, + "referencedDeclaration": 1189, "src": "7279:6:5", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1154_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$1185_storage_$", "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" } }, - "id": 1402, + "id": 1433, "indexExpression": { "argumentTypes": null, - "id": 1401, + "id": 1432, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1395, + "referencedDeclaration": 1426, "src": "7286:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -7269,39 +7269,39 @@ "nodeType": "IndexAccess", "src": "7279:12:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$1154_storage", + "typeIdentifier": "t_struct$_RoleData_$1185_storage", "typeString": "struct AccessControl.RoleData storage ref" } }, - "id": 1403, + "id": 1434, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "members", "nodeType": "MemberAccess", - "referencedDeclaration": 1151, + "referencedDeclaration": 1182, "src": "7279:20:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1404, + "id": 1435, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 3962, + "referencedDeclaration": 3993, "src": "7279:27:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 1406, + "id": 1437, "isConstant": false, "isLValue": false, "isPure": false, @@ -7317,11 +7317,11 @@ } }, "falseBody": null, - "id": 1415, + "id": 1446, "nodeType": "IfStatement", "src": "7275:112:5", "trueBody": { - "id": 1414, + "id": 1445, "nodeType": "Block", "src": "7317:70:5", "statements": [ @@ -7331,11 +7331,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1408, + "id": 1439, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1395, + "referencedDeclaration": 1426, "src": "7348:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -7344,11 +7344,11 @@ }, { "argumentTypes": null, - "id": 1409, + "id": 1440, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1397, + "referencedDeclaration": 1428, "src": "7354:7:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7360,18 +7360,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1410, + "id": 1441, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "7363:10:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1411, + "id": 1442, "isConstant": false, "isLValue": false, "isPure": false, @@ -7402,18 +7402,18 @@ "typeString": "address payable" } ], - "id": 1407, + "id": 1438, "name": "RoleRevoked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1188, + "referencedDeclaration": 1219, "src": "7336:11:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", "typeString": "function (bytes32,address,address)" } }, - "id": 1412, + "id": 1443, "isConstant": false, "isLValue": false, "isPure": false, @@ -7428,7 +7428,7 @@ "typeString": "tuple()" } }, - "id": 1413, + "id": 1444, "nodeType": "EmitStatement", "src": "7331:45:5" } @@ -7438,7 +7438,7 @@ ] }, "documentation": null, - "id": 1417, + "id": 1448, "implemented": true, "kind": "function", "modifiers": [], @@ -7446,17 +7446,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1398, + "id": 1429, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1395, + "id": 1426, "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1417, + "scope": 1448, "src": "7226:12:5", "stateVariable": false, "storageLocation": "default", @@ -7465,7 +7465,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1394, + "id": 1425, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7226:7:5", @@ -7479,12 +7479,12 @@ }, { "constant": false, - "id": 1397, + "id": 1428, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1417, + "scope": 1448, "src": "7240:15:5", "stateVariable": false, "storageLocation": "default", @@ -7493,7 +7493,7 @@ "typeString": "address" }, "typeName": { - "id": 1396, + "id": 1427, "name": "address", "nodeType": "ElementaryTypeName", "src": "7240:7:5", @@ -7510,19 +7510,19 @@ "src": "7225:31:5" }, "returnParameters": { - "id": 1399, + "id": 1430, "nodeType": "ParameterList", "parameters": [], "src": "7265:0:5" }, - "scope": 1418, + "scope": 1449, "src": "7205:188:5", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" } ], - "scope": 1419, + "scope": 1450, "src": "1433:5962:5" } ], @@ -7530,13 +7530,25 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:05.946Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.648Z", "devdoc": { "details": "Contract module that allows children to implement role-based access control mechanisms. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ``` bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ``` function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it.", + "events": { + "RoleAdminChanged(bytes32,bytes32,bytes32)": { + "details": "Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._" + }, + "RoleGranted(bytes32,address,address)": { + "details": "Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {_setupRole}." + }, + "RoleRevoked(bytes32,address,address)": { + "details": "Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)" + } + }, + "kind": "dev", "methods": { "getRoleAdmin(bytes32)": { "details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}." @@ -7559,9 +7571,12 @@ "revokeRole(bytes32,address)": { "details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role." } - } + }, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/Address.json b/abi/Address.json index 24cba4b..f2ae79f 100644 --- a/abi/Address.json +++ b/abi/Address.json @@ -1,9 +1,9 @@ { "contractName": "Address", "abi": [], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]}},\"version\":1}", - "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bc84ce6cade903f2b2761f7bbc0cbfc8264000b79786deed39501d5f6d8ae69b64736f6c634300060a0033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bc84ce6cade903f2b2761f7bbc0cbfc8264000b79786deed39501d5f6d8ae69b64736f6c634300060a0033", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a8280a24b49743859e98e584781c79f7a4490a5f4aa84b88ad44c28b795d0ee64736f6c634300060b0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a8280a24b49743859e98e584781c79f7a4490a5f4aa84b88ad44c28b795d0ee64736f6c634300060b0033", "immutableReferences": {}, "sourceMap": "126:5951:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", "deployedSourceMap": "126:5951:17:-:0;;;;;;;;", @@ -13,15 +13,15 @@ "absolutePath": "@openzeppelin/contracts/utils/Address.sol", "exportedSymbols": { "Address": [ - 3220 + 3251 ] }, - "id": 3221, + "id": 3252, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 3018, + "id": 3049, "literals": [ "solidity", "^", @@ -37,38 +37,38 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 3019, + "id": 3050, "nodeType": "StructuredDocumentation", "src": "58:67:17", "text": " @dev Collection of functions related to the address type" }, "fullyImplemented": true, - "id": 3220, + "id": 3251, "linearizedBaseContracts": [ - 3220 + 3251 ], "name": "Address", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3044, + "id": 3075, "nodeType": "Block", "src": "784:544:17", "statements": [ { "assignments": [ - 3028 + 3059 ], "declarations": [ { "constant": false, - "id": 3028, + "id": 3059, "mutability": "mutable", "name": "codehash", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3044, + "scope": 3075, "src": "1036:16:17", "stateVariable": false, "storageLocation": "default", @@ -77,7 +77,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3027, + "id": 3058, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1036:7:17", @@ -90,24 +90,24 @@ "visibility": "internal" } ], - "id": 3029, + "id": 3060, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "1036:16:17" }, { "assignments": [ - 3031 + 3062 ], "declarations": [ { "constant": false, - "id": 3031, + "id": 3062, "mutability": "mutable", "name": "accountHash", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3044, + "scope": 3075, "src": "1062:19:17", "stateVariable": false, "storageLocation": "default", @@ -116,7 +116,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3030, + "id": 3061, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1062:7:17", @@ -129,11 +129,11 @@ "visibility": "internal" } ], - "id": 3033, + "id": 3064, "initialValue": { "argumentTypes": null, "hexValue": "307863356432343630313836663732333363393237653764623264636337303363306535303062363533636138323237336237626661643830343564383561343730", - "id": 3032, + "id": 3063, "isConstant": false, "isLValue": false, "isPure": true, @@ -188,21 +188,21 @@ "evmVersion": "istanbul", "externalReferences": [ { - "declaration": 3022, + "declaration": 3053, "isOffset": false, "isSlot": false, "src": "1251:7:17", "valueSize": 1 }, { - "declaration": 3028, + "declaration": 3059, "isOffset": false, "isSlot": false, "src": "1227:8:17", "valueSize": 1 } ], - "id": 3034, + "id": 3065, "nodeType": "InlineAssembly", "src": "1216:45:17" }, @@ -216,7 +216,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3041, + "id": 3072, "isConstant": false, "isLValue": false, "isPure": false, @@ -227,18 +227,18 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 3037, + "id": 3068, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3035, + "id": 3066, "name": "codehash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3028, + "referencedDeclaration": 3059, "src": "1278:8:17", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -249,11 +249,11 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 3036, + "id": 3067, "name": "accountHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3031, + "referencedDeclaration": 3062, "src": "1290:11:17", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -274,18 +274,18 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 3040, + "id": 3071, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3038, + "id": 3069, "name": "codehash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3028, + "referencedDeclaration": 3059, "src": "1305:8:17", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -297,7 +297,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "307830", - "id": 3039, + "id": 3070, "isConstant": false, "isLValue": false, "isPure": true, @@ -325,7 +325,7 @@ } } ], - "id": 3042, + "id": 3073, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -338,20 +338,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 3026, - "id": 3043, + "functionReturnParameters": 3057, + "id": 3074, "nodeType": "Return", "src": "1270:51:17" } ] }, "documentation": { - "id": 3020, + "id": 3051, "nodeType": "StructuredDocumentation", "src": "148:565:17", "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" }, - "id": 3045, + "id": 3076, "implemented": true, "kind": "function", "modifiers": [], @@ -359,17 +359,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3023, + "id": 3054, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3022, + "id": 3053, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3045, + "scope": 3076, "src": "738:15:17", "stateVariable": false, "storageLocation": "default", @@ -378,7 +378,7 @@ "typeString": "address" }, "typeName": { - "id": 3021, + "id": 3052, "name": "address", "nodeType": "ElementaryTypeName", "src": "738:7:17", @@ -395,17 +395,17 @@ "src": "737:17:17" }, "returnParameters": { - "id": 3026, + "id": 3057, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3025, + "id": 3056, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3045, + "scope": 3076, "src": "778:4:17", "stateVariable": false, "storageLocation": "default", @@ -414,7 +414,7 @@ "typeString": "bool" }, "typeName": { - "id": 3024, + "id": 3055, "name": "bool", "nodeType": "ElementaryTypeName", "src": "778:4:17", @@ -429,7 +429,7 @@ ], "src": "777:6:17" }, - "scope": 3220, + "scope": 3251, "src": "718:610:17", "stateMutability": "view", "virtual": false, @@ -437,7 +437,7 @@ }, { "body": { - "id": 3078, + "id": 3109, "nodeType": "Block", "src": "2316:320:17", "statements": [ @@ -451,7 +451,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3060, + "id": 3091, "isConstant": false, "isLValue": false, "isPure": false, @@ -463,14 +463,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3056, + "id": 3087, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "2342:4:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$3220", + "typeIdentifier": "t_contract$_Address_$3251", "typeString": "library Address" } } @@ -478,11 +478,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Address_$3220", + "typeIdentifier": "t_contract$_Address_$3251", "typeString": "library Address" } ], - "id": 3055, + "id": 3086, "isConstant": false, "isLValue": false, "isPure": true, @@ -494,7 +494,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 3054, + "id": 3085, "name": "address", "nodeType": "ElementaryTypeName", "src": "2334:7:17", @@ -504,7 +504,7 @@ } } }, - "id": 3057, + "id": 3088, "isConstant": false, "isLValue": false, "isPure": false, @@ -519,7 +519,7 @@ "typeString": "address" } }, - "id": 3058, + "id": 3089, "isConstant": false, "isLValue": false, "isPure": false, @@ -537,11 +537,11 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 3059, + "id": 3090, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3050, + "referencedDeclaration": 3081, "src": "2359:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -557,7 +557,7 @@ { "argumentTypes": null, "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", - "id": 3061, + "id": 3092, "isConstant": false, "isLValue": false, "isPure": true, @@ -584,7 +584,7 @@ "typeString": "literal_string \"Address: insufficient balance\"" } ], - "id": 3053, + "id": 3084, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -598,7 +598,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 3062, + "id": 3093, "isConstant": false, "isLValue": false, "isPure": false, @@ -613,24 +613,24 @@ "typeString": "tuple()" } }, - "id": 3063, + "id": 3094, "nodeType": "ExpressionStatement", "src": "2326:73:17" }, { "assignments": [ - 3065, + 3096, null ], "declarations": [ { "constant": false, - "id": 3065, + "id": 3096, "mutability": "mutable", "name": "success", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3078, + "scope": 3109, "src": "2488:12:17", "stateVariable": false, "storageLocation": "default", @@ -639,7 +639,7 @@ "typeString": "bool" }, "typeName": { - "id": 3064, + "id": 3095, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2488:4:17", @@ -653,14 +653,14 @@ }, null ], - "id": 3072, + "id": 3103, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "", - "id": 3070, + "id": 3101, "isConstant": false, "isLValue": false, "isPure": true, @@ -687,18 +687,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3066, + "id": 3097, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3048, + "referencedDeclaration": 3079, "src": "2506:9:17", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 3067, + "id": 3098, "isConstant": false, "isLValue": false, "isPure": false, @@ -712,7 +712,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 3069, + "id": 3100, "isConstant": false, "isLValue": false, "isPure": false, @@ -724,11 +724,11 @@ "options": [ { "argumentTypes": null, - "id": 3068, + "id": 3099, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3050, + "referencedDeclaration": 3081, "src": "2529:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -742,7 +742,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 3071, + "id": 3102, "isConstant": false, "isLValue": false, "isPure": false, @@ -766,11 +766,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3074, + "id": 3105, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3065, + "referencedDeclaration": 3096, "src": "2559:7:17", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -780,7 +780,7 @@ { "argumentTypes": null, "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", - "id": 3075, + "id": 3106, "isConstant": false, "isLValue": false, "isPure": true, @@ -807,7 +807,7 @@ "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" } ], - "id": 3073, + "id": 3104, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -821,7 +821,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 3076, + "id": 3107, "isConstant": false, "isLValue": false, "isPure": false, @@ -836,19 +836,19 @@ "typeString": "tuple()" } }, - "id": 3077, + "id": 3108, "nodeType": "ExpressionStatement", "src": "2551:78:17" } ] }, "documentation": { - "id": 3046, + "id": 3077, "nodeType": "StructuredDocumentation", "src": "1334:906:17", "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." }, - "id": 3079, + "id": 3110, "implemented": true, "kind": "function", "modifiers": [], @@ -856,17 +856,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3051, + "id": 3082, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3048, + "id": 3079, "mutability": "mutable", "name": "recipient", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3079, + "scope": 3110, "src": "2264:25:17", "stateVariable": false, "storageLocation": "default", @@ -875,7 +875,7 @@ "typeString": "address payable" }, "typeName": { - "id": 3047, + "id": 3078, "name": "address", "nodeType": "ElementaryTypeName", "src": "2264:15:17", @@ -890,12 +890,12 @@ }, { "constant": false, - "id": 3050, + "id": 3081, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3079, + "scope": 3110, "src": "2291:14:17", "stateVariable": false, "storageLocation": "default", @@ -904,7 +904,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3049, + "id": 3080, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2291:7:17", @@ -920,12 +920,12 @@ "src": "2263:43:17" }, "returnParameters": { - "id": 3052, + "id": 3083, "nodeType": "ParameterList", "parameters": [], "src": "2316:0:17" }, - "scope": 3220, + "scope": 3251, "src": "2245:391:17", "stateMutability": "nonpayable", "virtual": false, @@ -933,7 +933,7 @@ }, { "body": { - "id": 3095, + "id": 3126, "nodeType": "Block", "src": "3466:82:17", "statements": [ @@ -943,11 +943,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3090, + "id": 3121, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3082, + "referencedDeclaration": 3113, "src": "3494:6:17", "typeDescriptions": { "typeIdentifier": "t_address", @@ -956,11 +956,11 @@ }, { "argumentTypes": null, - "id": 3091, + "id": 3122, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3084, + "referencedDeclaration": 3115, "src": "3502:4:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -970,7 +970,7 @@ { "argumentTypes": null, "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", - "id": 3092, + "id": 3123, "isConstant": false, "isLValue": false, "isPure": true, @@ -1001,21 +1001,21 @@ "typeString": "literal_string \"Address: low-level call failed\"" } ], - "id": 3089, + "id": 3120, "name": "functionCall", "nodeType": "Identifier", "overloadedDeclarations": [ - 3096, - 3116 + 3127, + 3147 ], - "referencedDeclaration": 3116, + "referencedDeclaration": 3147, "src": "3481:12:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" } }, - "id": 3093, + "id": 3124, "isConstant": false, "isLValue": false, "isPure": false, @@ -1030,20 +1030,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 3088, - "id": 3094, + "functionReturnParameters": 3119, + "id": 3125, "nodeType": "Return", "src": "3474:67:17" } ] }, "documentation": { - "id": 3080, + "id": 3111, "nodeType": "StructuredDocumentation", "src": "2642:730:17", "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" }, - "id": 3096, + "id": 3127, "implemented": true, "kind": "function", "modifiers": [], @@ -1051,17 +1051,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3085, + "id": 3116, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3082, + "id": 3113, "mutability": "mutable", "name": "target", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3096, + "scope": 3127, "src": "3399:14:17", "stateVariable": false, "storageLocation": "default", @@ -1070,7 +1070,7 @@ "typeString": "address" }, "typeName": { - "id": 3081, + "id": 3112, "name": "address", "nodeType": "ElementaryTypeName", "src": "3399:7:17", @@ -1085,12 +1085,12 @@ }, { "constant": false, - "id": 3084, + "id": 3115, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3096, + "scope": 3127, "src": "3415:17:17", "stateVariable": false, "storageLocation": "memory", @@ -1099,7 +1099,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3083, + "id": 3114, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3415:5:17", @@ -1115,17 +1115,17 @@ "src": "3398:35:17" }, "returnParameters": { - "id": 3088, + "id": 3119, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3087, + "id": 3118, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3096, + "scope": 3127, "src": "3452:12:17", "stateVariable": false, "storageLocation": "memory", @@ -1134,7 +1134,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3086, + "id": 3117, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3452:5:17", @@ -1149,7 +1149,7 @@ ], "src": "3451:14:17" }, - "scope": 3220, + "scope": 3251, "src": "3377:171:17", "stateMutability": "nonpayable", "virtual": false, @@ -1157,7 +1157,7 @@ }, { "body": { - "id": 3115, + "id": 3146, "nodeType": "Block", "src": "3887:77:17", "statements": [ @@ -1167,11 +1167,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3109, + "id": 3140, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3099, + "referencedDeclaration": 3130, "src": "3927:6:17", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1180,11 +1180,11 @@ }, { "argumentTypes": null, - "id": 3110, + "id": 3141, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3101, + "referencedDeclaration": 3132, "src": "3935:4:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -1194,7 +1194,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3111, + "id": 3142, "isConstant": false, "isLValue": false, "isPure": true, @@ -1211,11 +1211,11 @@ }, { "argumentTypes": null, - "id": 3112, + "id": 3143, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3103, + "referencedDeclaration": 3134, "src": "3944:12:17", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -1242,18 +1242,18 @@ "typeString": "string memory" } ], - "id": 3108, + "id": 3139, "name": "_functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3219, + "referencedDeclaration": 3250, "src": "3904:22:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 3113, + "id": 3144, "isConstant": false, "isLValue": false, "isPure": false, @@ -1268,20 +1268,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 3107, - "id": 3114, + "functionReturnParameters": 3138, + "id": 3145, "nodeType": "Return", "src": "3897:60:17" } ] }, "documentation": { - "id": 3097, + "id": 3128, "nodeType": "StructuredDocumentation", "src": "3554:211:17", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" }, - "id": 3116, + "id": 3147, "implemented": true, "kind": "function", "modifiers": [], @@ -1289,17 +1289,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3104, + "id": 3135, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3099, + "id": 3130, "mutability": "mutable", "name": "target", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3116, + "scope": 3147, "src": "3792:14:17", "stateVariable": false, "storageLocation": "default", @@ -1308,7 +1308,7 @@ "typeString": "address" }, "typeName": { - "id": 3098, + "id": 3129, "name": "address", "nodeType": "ElementaryTypeName", "src": "3792:7:17", @@ -1323,12 +1323,12 @@ }, { "constant": false, - "id": 3101, + "id": 3132, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3116, + "scope": 3147, "src": "3808:17:17", "stateVariable": false, "storageLocation": "memory", @@ -1337,7 +1337,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3100, + "id": 3131, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3808:5:17", @@ -1351,12 +1351,12 @@ }, { "constant": false, - "id": 3103, + "id": 3134, "mutability": "mutable", "name": "errorMessage", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3116, + "scope": 3147, "src": "3827:26:17", "stateVariable": false, "storageLocation": "memory", @@ -1365,7 +1365,7 @@ "typeString": "string" }, "typeName": { - "id": 3102, + "id": 3133, "name": "string", "nodeType": "ElementaryTypeName", "src": "3827:6:17", @@ -1381,17 +1381,17 @@ "src": "3791:63:17" }, "returnParameters": { - "id": 3107, + "id": 3138, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3106, + "id": 3137, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3116, + "scope": 3147, "src": "3873:12:17", "stateVariable": false, "storageLocation": "memory", @@ -1400,7 +1400,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3105, + "id": 3136, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3873:5:17", @@ -1415,7 +1415,7 @@ ], "src": "3872:14:17" }, - "scope": 3220, + "scope": 3251, "src": "3770:194:17", "stateMutability": "nonpayable", "virtual": false, @@ -1423,7 +1423,7 @@ }, { "body": { - "id": 3135, + "id": 3166, "nodeType": "Block", "src": "4439:111:17", "statements": [ @@ -1433,11 +1433,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3129, + "id": 3160, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3119, + "referencedDeclaration": 3150, "src": "4478:6:17", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1446,11 +1446,11 @@ }, { "argumentTypes": null, - "id": 3130, + "id": 3161, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3121, + "referencedDeclaration": 3152, "src": "4486:4:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -1459,11 +1459,11 @@ }, { "argumentTypes": null, - "id": 3131, + "id": 3162, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3123, + "referencedDeclaration": 3154, "src": "4492:5:17", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1473,7 +1473,7 @@ { "argumentTypes": null, "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", - "id": 3132, + "id": 3163, "isConstant": false, "isLValue": false, "isPure": true, @@ -1508,21 +1508,21 @@ "typeString": "literal_string \"Address: low-level call with value failed\"" } ], - "id": 3128, + "id": 3159, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ - 3136, - 3169 + 3167, + 3200 ], - "referencedDeclaration": 3169, + "referencedDeclaration": 3200, "src": "4456:21:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 3133, + "id": 3164, "isConstant": false, "isLValue": false, "isPure": false, @@ -1537,20 +1537,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 3127, - "id": 3134, + "functionReturnParameters": 3158, + "id": 3165, "nodeType": "Return", "src": "4449:94:17" } ] }, "documentation": { - "id": 3117, + "id": 3148, "nodeType": "StructuredDocumentation", "src": "3970:351:17", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" }, - "id": 3136, + "id": 3167, "implemented": true, "kind": "function", "modifiers": [], @@ -1558,17 +1558,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3124, + "id": 3155, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3119, + "id": 3150, "mutability": "mutable", "name": "target", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3136, + "scope": 3167, "src": "4357:14:17", "stateVariable": false, "storageLocation": "default", @@ -1577,7 +1577,7 @@ "typeString": "address" }, "typeName": { - "id": 3118, + "id": 3149, "name": "address", "nodeType": "ElementaryTypeName", "src": "4357:7:17", @@ -1592,12 +1592,12 @@ }, { "constant": false, - "id": 3121, + "id": 3152, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3136, + "scope": 3167, "src": "4373:17:17", "stateVariable": false, "storageLocation": "memory", @@ -1606,7 +1606,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3120, + "id": 3151, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4373:5:17", @@ -1620,12 +1620,12 @@ }, { "constant": false, - "id": 3123, + "id": 3154, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3136, + "scope": 3167, "src": "4392:13:17", "stateVariable": false, "storageLocation": "default", @@ -1634,7 +1634,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3122, + "id": 3153, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4392:7:17", @@ -1650,17 +1650,17 @@ "src": "4356:50:17" }, "returnParameters": { - "id": 3127, + "id": 3158, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3126, + "id": 3157, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3136, + "scope": 3167, "src": "4425:12:17", "stateVariable": false, "storageLocation": "memory", @@ -1669,7 +1669,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3125, + "id": 3156, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4425:5:17", @@ -1684,7 +1684,7 @@ ], "src": "4424:14:17" }, - "scope": 3220, + "scope": 3251, "src": "4326:224:17", "stateMutability": "nonpayable", "virtual": false, @@ -1692,7 +1692,7 @@ }, { "body": { - "id": 3168, + "id": 3199, "nodeType": "Block", "src": "4939:172:17", "statements": [ @@ -1706,7 +1706,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3157, + "id": 3188, "isConstant": false, "isLValue": false, "isPure": false, @@ -1718,14 +1718,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3153, + "id": 3184, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "4965:4:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$3220", + "typeIdentifier": "t_contract$_Address_$3251", "typeString": "library Address" } } @@ -1733,11 +1733,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Address_$3220", + "typeIdentifier": "t_contract$_Address_$3251", "typeString": "library Address" } ], - "id": 3152, + "id": 3183, "isConstant": false, "isLValue": false, "isPure": true, @@ -1749,7 +1749,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 3151, + "id": 3182, "name": "address", "nodeType": "ElementaryTypeName", "src": "4957:7:17", @@ -1759,7 +1759,7 @@ } } }, - "id": 3154, + "id": 3185, "isConstant": false, "isLValue": false, "isPure": false, @@ -1774,7 +1774,7 @@ "typeString": "address" } }, - "id": 3155, + "id": 3186, "isConstant": false, "isLValue": false, "isPure": false, @@ -1792,11 +1792,11 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 3156, + "id": 3187, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3143, + "referencedDeclaration": 3174, "src": "4982:5:17", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1812,7 +1812,7 @@ { "argumentTypes": null, "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", - "id": 3158, + "id": 3189, "isConstant": false, "isLValue": false, "isPure": true, @@ -1839,7 +1839,7 @@ "typeString": "literal_string \"Address: insufficient balance for call\"" } ], - "id": 3150, + "id": 3181, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1853,7 +1853,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 3159, + "id": 3190, "isConstant": false, "isLValue": false, "isPure": false, @@ -1868,7 +1868,7 @@ "typeString": "tuple()" } }, - "id": 3160, + "id": 3191, "nodeType": "ExpressionStatement", "src": "4949:81:17" }, @@ -1878,11 +1878,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3162, + "id": 3193, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3139, + "referencedDeclaration": 3170, "src": "5070:6:17", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1891,11 +1891,11 @@ }, { "argumentTypes": null, - "id": 3163, + "id": 3194, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3141, + "referencedDeclaration": 3172, "src": "5078:4:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -1904,11 +1904,11 @@ }, { "argumentTypes": null, - "id": 3164, + "id": 3195, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3143, + "referencedDeclaration": 3174, "src": "5084:5:17", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1917,11 +1917,11 @@ }, { "argumentTypes": null, - "id": 3165, + "id": 3196, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3145, + "referencedDeclaration": 3176, "src": "5091:12:17", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -1948,18 +1948,18 @@ "typeString": "string memory" } ], - "id": 3161, + "id": 3192, "name": "_functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3219, + "referencedDeclaration": 3250, "src": "5047:22:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 3166, + "id": 3197, "isConstant": false, "isLValue": false, "isPure": false, @@ -1974,20 +1974,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 3149, - "id": 3167, + "functionReturnParameters": 3180, + "id": 3198, "nodeType": "Return", "src": "5040:64:17" } ] }, "documentation": { - "id": 3137, + "id": 3168, "nodeType": "StructuredDocumentation", "src": "4556:237:17", "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" }, - "id": 3169, + "id": 3200, "implemented": true, "kind": "function", "modifiers": [], @@ -1995,17 +1995,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3146, + "id": 3177, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3139, + "id": 3170, "mutability": "mutable", "name": "target", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3169, + "scope": 3200, "src": "4829:14:17", "stateVariable": false, "storageLocation": "default", @@ -2014,7 +2014,7 @@ "typeString": "address" }, "typeName": { - "id": 3138, + "id": 3169, "name": "address", "nodeType": "ElementaryTypeName", "src": "4829:7:17", @@ -2029,12 +2029,12 @@ }, { "constant": false, - "id": 3141, + "id": 3172, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3169, + "scope": 3200, "src": "4845:17:17", "stateVariable": false, "storageLocation": "memory", @@ -2043,7 +2043,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3140, + "id": 3171, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4845:5:17", @@ -2057,12 +2057,12 @@ }, { "constant": false, - "id": 3143, + "id": 3174, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3169, + "scope": 3200, "src": "4864:13:17", "stateVariable": false, "storageLocation": "default", @@ -2071,7 +2071,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3142, + "id": 3173, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4864:7:17", @@ -2085,12 +2085,12 @@ }, { "constant": false, - "id": 3145, + "id": 3176, "mutability": "mutable", "name": "errorMessage", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3169, + "scope": 3200, "src": "4879:26:17", "stateVariable": false, "storageLocation": "memory", @@ -2099,7 +2099,7 @@ "typeString": "string" }, "typeName": { - "id": 3144, + "id": 3175, "name": "string", "nodeType": "ElementaryTypeName", "src": "4879:6:17", @@ -2115,17 +2115,17 @@ "src": "4828:78:17" }, "returnParameters": { - "id": 3149, + "id": 3180, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3148, + "id": 3179, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3169, + "scope": 3200, "src": "4925:12:17", "stateVariable": false, "storageLocation": "memory", @@ -2134,7 +2134,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3147, + "id": 3178, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4925:5:17", @@ -2149,7 +2149,7 @@ ], "src": "4924:14:17" }, - "scope": 3220, + "scope": 3251, "src": "4798:313:17", "stateMutability": "nonpayable", "virtual": false, @@ -2157,7 +2157,7 @@ }, { "body": { - "id": 3218, + "id": 3249, "nodeType": "Block", "src": "5261:814:17", "statements": [ @@ -2170,11 +2170,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3184, + "id": 3215, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3171, + "referencedDeclaration": 3202, "src": "5290:6:17", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2189,18 +2189,18 @@ "typeString": "address" } ], - "id": 3183, + "id": 3214, "name": "isContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3045, + "referencedDeclaration": 3076, "src": "5279:10:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 3185, + "id": 3216, "isConstant": false, "isLValue": false, "isPure": false, @@ -2218,7 +2218,7 @@ { "argumentTypes": null, "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", - "id": 3186, + "id": 3217, "isConstant": false, "isLValue": false, "isPure": true, @@ -2245,7 +2245,7 @@ "typeString": "literal_string \"Address: call to non-contract\"" } ], - "id": 3182, + "id": 3213, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2259,7 +2259,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 3187, + "id": 3218, "isConstant": false, "isLValue": false, "isPure": false, @@ -2274,24 +2274,24 @@ "typeString": "tuple()" } }, - "id": 3188, + "id": 3219, "nodeType": "ExpressionStatement", "src": "5271:60:17" }, { "assignments": [ - 3190, - 3192 + 3221, + 3223 ], "declarations": [ { "constant": false, - "id": 3190, + "id": 3221, "mutability": "mutable", "name": "success", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3218, + "scope": 3249, "src": "5402:12:17", "stateVariable": false, "storageLocation": "default", @@ -2300,7 +2300,7 @@ "typeString": "bool" }, "typeName": { - "id": 3189, + "id": 3220, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5402:4:17", @@ -2314,12 +2314,12 @@ }, { "constant": false, - "id": 3192, + "id": 3223, "mutability": "mutable", "name": "returndata", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3218, + "scope": 3249, "src": "5416:23:17", "stateVariable": false, "storageLocation": "memory", @@ -2328,7 +2328,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3191, + "id": 3222, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5416:5:17", @@ -2341,17 +2341,17 @@ "visibility": "internal" } ], - "id": 3199, + "id": 3230, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3197, + "id": 3228, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3173, + "referencedDeclaration": 3204, "src": "5474:4:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2370,18 +2370,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3193, + "id": 3224, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3171, + "referencedDeclaration": 3202, "src": "5443:6:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3194, + "id": 3225, "isConstant": false, "isLValue": false, "isPure": false, @@ -2395,7 +2395,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 3196, + "id": 3227, "isConstant": false, "isLValue": false, "isPure": false, @@ -2407,11 +2407,11 @@ "options": [ { "argumentTypes": null, - "id": 3195, + "id": 3226, "name": "weiValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3175, + "referencedDeclaration": 3206, "src": "5463:8:17", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2425,7 +2425,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 3198, + "id": 3229, "isConstant": false, "isLValue": false, "isPure": false, @@ -2446,11 +2446,11 @@ { "condition": { "argumentTypes": null, - "id": 3200, + "id": 3231, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3190, + "referencedDeclaration": 3221, "src": "5493:7:17", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2458,7 +2458,7 @@ } }, "falseBody": { - "id": 3216, + "id": 3247, "nodeType": "Block", "src": "5550:519:17", "statements": [ @@ -2469,7 +2469,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3207, + "id": 3238, "isConstant": false, "isLValue": false, "isPure": false, @@ -2478,18 +2478,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3204, + "id": 3235, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3192, + "referencedDeclaration": 3223, "src": "5634:10:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3205, + "id": 3236, "isConstant": false, "isLValue": false, "isPure": false, @@ -2508,7 +2508,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3206, + "id": 3237, "isConstant": false, "isLValue": false, "isPure": true, @@ -2530,7 +2530,7 @@ } }, "falseBody": { - "id": 3214, + "id": 3245, "nodeType": "Block", "src": "6006:53:17", "statements": [ @@ -2540,11 +2540,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3211, + "id": 3242, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3177, + "referencedDeclaration": 3208, "src": "6031:12:17", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -2559,7 +2559,7 @@ "typeString": "string memory" } ], - "id": 3210, + "id": 3241, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2573,7 +2573,7 @@ "typeString": "function (string memory) pure" } }, - "id": 3212, + "id": 3243, "isConstant": false, "isLValue": false, "isPure": false, @@ -2588,17 +2588,17 @@ "typeString": "tuple()" } }, - "id": 3213, + "id": 3244, "nodeType": "ExpressionStatement", "src": "6024:20:17" } ] }, - "id": 3215, + "id": 3246, "nodeType": "IfStatement", "src": "5630:429:17", "trueBody": { - "id": 3209, + "id": 3240, "nodeType": "Block", "src": "5657:343:17", "statements": [ @@ -2683,21 +2683,21 @@ "evmVersion": "istanbul", "externalReferences": [ { - "declaration": 3192, + "declaration": 3223, "isOffset": false, "isSlot": false, "src": "5892:10:17", "valueSize": 1 }, { - "declaration": 3192, + "declaration": 3223, "isOffset": false, "isSlot": false, "src": "5939:10:17", "valueSize": 1 } ], - "id": 3208, + "id": 3239, "nodeType": "InlineAssembly", "src": "5832:154:17" } @@ -2706,30 +2706,30 @@ } ] }, - "id": 3217, + "id": 3248, "nodeType": "IfStatement", "src": "5489:580:17", "trueBody": { - "id": 3203, + "id": 3234, "nodeType": "Block", "src": "5502:42:17", "statements": [ { "expression": { "argumentTypes": null, - "id": 3201, + "id": 3232, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3192, + "referencedDeclaration": 3223, "src": "5523:10:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 3181, - "id": 3202, + "functionReturnParameters": 3212, + "id": 3233, "nodeType": "Return", "src": "5516:17:17" } @@ -2739,7 +2739,7 @@ ] }, "documentation": null, - "id": 3219, + "id": 3250, "implemented": true, "kind": "function", "modifiers": [], @@ -2747,17 +2747,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3178, + "id": 3209, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3171, + "id": 3202, "mutability": "mutable", "name": "target", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3219, + "scope": 3250, "src": "5149:14:17", "stateVariable": false, "storageLocation": "default", @@ -2766,7 +2766,7 @@ "typeString": "address" }, "typeName": { - "id": 3170, + "id": 3201, "name": "address", "nodeType": "ElementaryTypeName", "src": "5149:7:17", @@ -2781,12 +2781,12 @@ }, { "constant": false, - "id": 3173, + "id": 3204, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3219, + "scope": 3250, "src": "5165:17:17", "stateVariable": false, "storageLocation": "memory", @@ -2795,7 +2795,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3172, + "id": 3203, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5165:5:17", @@ -2809,12 +2809,12 @@ }, { "constant": false, - "id": 3175, + "id": 3206, "mutability": "mutable", "name": "weiValue", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3219, + "scope": 3250, "src": "5184:16:17", "stateVariable": false, "storageLocation": "default", @@ -2823,7 +2823,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3174, + "id": 3205, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5184:7:17", @@ -2837,12 +2837,12 @@ }, { "constant": false, - "id": 3177, + "id": 3208, "mutability": "mutable", "name": "errorMessage", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3219, + "scope": 3250, "src": "5202:26:17", "stateVariable": false, "storageLocation": "memory", @@ -2851,7 +2851,7 @@ "typeString": "string" }, "typeName": { - "id": 3176, + "id": 3207, "name": "string", "nodeType": "ElementaryTypeName", "src": "5202:6:17", @@ -2867,17 +2867,17 @@ "src": "5148:81:17" }, "returnParameters": { - "id": 3181, + "id": 3212, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3180, + "id": 3211, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3219, + "scope": 3250, "src": "5247:12:17", "stateVariable": false, "storageLocation": "memory", @@ -2886,7 +2886,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3179, + "id": 3210, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5247:5:17", @@ -2901,14 +2901,14 @@ ], "src": "5246:14:17" }, - "scope": 3220, + "scope": 3251, "src": "5117:958:17", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" } ], - "scope": 3221, + "scope": 3252, "src": "126:5951:17" } ], @@ -2918,15 +2918,15 @@ "absolutePath": "@openzeppelin/contracts/utils/Address.sol", "exportedSymbols": { "Address": [ - 3220 + 3251 ] }, - "id": 3221, + "id": 3252, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 3018, + "id": 3049, "literals": [ "solidity", "^", @@ -2942,38 +2942,38 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 3019, + "id": 3050, "nodeType": "StructuredDocumentation", "src": "58:67:17", "text": " @dev Collection of functions related to the address type" }, "fullyImplemented": true, - "id": 3220, + "id": 3251, "linearizedBaseContracts": [ - 3220 + 3251 ], "name": "Address", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3044, + "id": 3075, "nodeType": "Block", "src": "784:544:17", "statements": [ { "assignments": [ - 3028 + 3059 ], "declarations": [ { "constant": false, - "id": 3028, + "id": 3059, "mutability": "mutable", "name": "codehash", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3044, + "scope": 3075, "src": "1036:16:17", "stateVariable": false, "storageLocation": "default", @@ -2982,7 +2982,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3027, + "id": 3058, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1036:7:17", @@ -2995,24 +2995,24 @@ "visibility": "internal" } ], - "id": 3029, + "id": 3060, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "1036:16:17" }, { "assignments": [ - 3031 + 3062 ], "declarations": [ { "constant": false, - "id": 3031, + "id": 3062, "mutability": "mutable", "name": "accountHash", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3044, + "scope": 3075, "src": "1062:19:17", "stateVariable": false, "storageLocation": "default", @@ -3021,7 +3021,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3030, + "id": 3061, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1062:7:17", @@ -3034,11 +3034,11 @@ "visibility": "internal" } ], - "id": 3033, + "id": 3064, "initialValue": { "argumentTypes": null, "hexValue": "307863356432343630313836663732333363393237653764623264636337303363306535303062363533636138323237336237626661643830343564383561343730", - "id": 3032, + "id": 3063, "isConstant": false, "isLValue": false, "isPure": true, @@ -3093,21 +3093,21 @@ "evmVersion": "istanbul", "externalReferences": [ { - "declaration": 3022, + "declaration": 3053, "isOffset": false, "isSlot": false, "src": "1251:7:17", "valueSize": 1 }, { - "declaration": 3028, + "declaration": 3059, "isOffset": false, "isSlot": false, "src": "1227:8:17", "valueSize": 1 } ], - "id": 3034, + "id": 3065, "nodeType": "InlineAssembly", "src": "1216:45:17" }, @@ -3121,7 +3121,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3041, + "id": 3072, "isConstant": false, "isLValue": false, "isPure": false, @@ -3132,18 +3132,18 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 3037, + "id": 3068, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3035, + "id": 3066, "name": "codehash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3028, + "referencedDeclaration": 3059, "src": "1278:8:17", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3154,11 +3154,11 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 3036, + "id": 3067, "name": "accountHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3031, + "referencedDeclaration": 3062, "src": "1290:11:17", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3179,18 +3179,18 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 3040, + "id": 3071, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3038, + "id": 3069, "name": "codehash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3028, + "referencedDeclaration": 3059, "src": "1305:8:17", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3202,7 +3202,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "307830", - "id": 3039, + "id": 3070, "isConstant": false, "isLValue": false, "isPure": true, @@ -3230,7 +3230,7 @@ } } ], - "id": 3042, + "id": 3073, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -3243,20 +3243,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 3026, - "id": 3043, + "functionReturnParameters": 3057, + "id": 3074, "nodeType": "Return", "src": "1270:51:17" } ] }, "documentation": { - "id": 3020, + "id": 3051, "nodeType": "StructuredDocumentation", "src": "148:565:17", "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" }, - "id": 3045, + "id": 3076, "implemented": true, "kind": "function", "modifiers": [], @@ -3264,17 +3264,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3023, + "id": 3054, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3022, + "id": 3053, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3045, + "scope": 3076, "src": "738:15:17", "stateVariable": false, "storageLocation": "default", @@ -3283,7 +3283,7 @@ "typeString": "address" }, "typeName": { - "id": 3021, + "id": 3052, "name": "address", "nodeType": "ElementaryTypeName", "src": "738:7:17", @@ -3300,17 +3300,17 @@ "src": "737:17:17" }, "returnParameters": { - "id": 3026, + "id": 3057, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3025, + "id": 3056, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3045, + "scope": 3076, "src": "778:4:17", "stateVariable": false, "storageLocation": "default", @@ -3319,7 +3319,7 @@ "typeString": "bool" }, "typeName": { - "id": 3024, + "id": 3055, "name": "bool", "nodeType": "ElementaryTypeName", "src": "778:4:17", @@ -3334,7 +3334,7 @@ ], "src": "777:6:17" }, - "scope": 3220, + "scope": 3251, "src": "718:610:17", "stateMutability": "view", "virtual": false, @@ -3342,7 +3342,7 @@ }, { "body": { - "id": 3078, + "id": 3109, "nodeType": "Block", "src": "2316:320:17", "statements": [ @@ -3356,7 +3356,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3060, + "id": 3091, "isConstant": false, "isLValue": false, "isPure": false, @@ -3368,14 +3368,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3056, + "id": 3087, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "2342:4:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$3220", + "typeIdentifier": "t_contract$_Address_$3251", "typeString": "library Address" } } @@ -3383,11 +3383,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Address_$3220", + "typeIdentifier": "t_contract$_Address_$3251", "typeString": "library Address" } ], - "id": 3055, + "id": 3086, "isConstant": false, "isLValue": false, "isPure": true, @@ -3399,7 +3399,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 3054, + "id": 3085, "name": "address", "nodeType": "ElementaryTypeName", "src": "2334:7:17", @@ -3409,7 +3409,7 @@ } } }, - "id": 3057, + "id": 3088, "isConstant": false, "isLValue": false, "isPure": false, @@ -3424,7 +3424,7 @@ "typeString": "address" } }, - "id": 3058, + "id": 3089, "isConstant": false, "isLValue": false, "isPure": false, @@ -3442,11 +3442,11 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 3059, + "id": 3090, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3050, + "referencedDeclaration": 3081, "src": "2359:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3462,7 +3462,7 @@ { "argumentTypes": null, "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", - "id": 3061, + "id": 3092, "isConstant": false, "isLValue": false, "isPure": true, @@ -3489,7 +3489,7 @@ "typeString": "literal_string \"Address: insufficient balance\"" } ], - "id": 3053, + "id": 3084, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3503,7 +3503,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 3062, + "id": 3093, "isConstant": false, "isLValue": false, "isPure": false, @@ -3518,24 +3518,24 @@ "typeString": "tuple()" } }, - "id": 3063, + "id": 3094, "nodeType": "ExpressionStatement", "src": "2326:73:17" }, { "assignments": [ - 3065, + 3096, null ], "declarations": [ { "constant": false, - "id": 3065, + "id": 3096, "mutability": "mutable", "name": "success", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3078, + "scope": 3109, "src": "2488:12:17", "stateVariable": false, "storageLocation": "default", @@ -3544,7 +3544,7 @@ "typeString": "bool" }, "typeName": { - "id": 3064, + "id": 3095, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2488:4:17", @@ -3558,14 +3558,14 @@ }, null ], - "id": 3072, + "id": 3103, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "", - "id": 3070, + "id": 3101, "isConstant": false, "isLValue": false, "isPure": true, @@ -3592,18 +3592,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3066, + "id": 3097, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3048, + "referencedDeclaration": 3079, "src": "2506:9:17", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 3067, + "id": 3098, "isConstant": false, "isLValue": false, "isPure": false, @@ -3617,7 +3617,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 3069, + "id": 3100, "isConstant": false, "isLValue": false, "isPure": false, @@ -3629,11 +3629,11 @@ "options": [ { "argumentTypes": null, - "id": 3068, + "id": 3099, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3050, + "referencedDeclaration": 3081, "src": "2529:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3647,7 +3647,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 3071, + "id": 3102, "isConstant": false, "isLValue": false, "isPure": false, @@ -3671,11 +3671,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3074, + "id": 3105, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3065, + "referencedDeclaration": 3096, "src": "2559:7:17", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3685,7 +3685,7 @@ { "argumentTypes": null, "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", - "id": 3075, + "id": 3106, "isConstant": false, "isLValue": false, "isPure": true, @@ -3712,7 +3712,7 @@ "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" } ], - "id": 3073, + "id": 3104, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3726,7 +3726,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 3076, + "id": 3107, "isConstant": false, "isLValue": false, "isPure": false, @@ -3741,19 +3741,19 @@ "typeString": "tuple()" } }, - "id": 3077, + "id": 3108, "nodeType": "ExpressionStatement", "src": "2551:78:17" } ] }, "documentation": { - "id": 3046, + "id": 3077, "nodeType": "StructuredDocumentation", "src": "1334:906:17", "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." }, - "id": 3079, + "id": 3110, "implemented": true, "kind": "function", "modifiers": [], @@ -3761,17 +3761,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3051, + "id": 3082, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3048, + "id": 3079, "mutability": "mutable", "name": "recipient", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3079, + "scope": 3110, "src": "2264:25:17", "stateVariable": false, "storageLocation": "default", @@ -3780,7 +3780,7 @@ "typeString": "address payable" }, "typeName": { - "id": 3047, + "id": 3078, "name": "address", "nodeType": "ElementaryTypeName", "src": "2264:15:17", @@ -3795,12 +3795,12 @@ }, { "constant": false, - "id": 3050, + "id": 3081, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3079, + "scope": 3110, "src": "2291:14:17", "stateVariable": false, "storageLocation": "default", @@ -3809,7 +3809,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3049, + "id": 3080, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2291:7:17", @@ -3825,12 +3825,12 @@ "src": "2263:43:17" }, "returnParameters": { - "id": 3052, + "id": 3083, "nodeType": "ParameterList", "parameters": [], "src": "2316:0:17" }, - "scope": 3220, + "scope": 3251, "src": "2245:391:17", "stateMutability": "nonpayable", "virtual": false, @@ -3838,7 +3838,7 @@ }, { "body": { - "id": 3095, + "id": 3126, "nodeType": "Block", "src": "3466:82:17", "statements": [ @@ -3848,11 +3848,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3090, + "id": 3121, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3082, + "referencedDeclaration": 3113, "src": "3494:6:17", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3861,11 +3861,11 @@ }, { "argumentTypes": null, - "id": 3091, + "id": 3122, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3084, + "referencedDeclaration": 3115, "src": "3502:4:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -3875,7 +3875,7 @@ { "argumentTypes": null, "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", - "id": 3092, + "id": 3123, "isConstant": false, "isLValue": false, "isPure": true, @@ -3906,21 +3906,21 @@ "typeString": "literal_string \"Address: low-level call failed\"" } ], - "id": 3089, + "id": 3120, "name": "functionCall", "nodeType": "Identifier", "overloadedDeclarations": [ - 3096, - 3116 + 3127, + 3147 ], - "referencedDeclaration": 3116, + "referencedDeclaration": 3147, "src": "3481:12:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" } }, - "id": 3093, + "id": 3124, "isConstant": false, "isLValue": false, "isPure": false, @@ -3935,20 +3935,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 3088, - "id": 3094, + "functionReturnParameters": 3119, + "id": 3125, "nodeType": "Return", "src": "3474:67:17" } ] }, "documentation": { - "id": 3080, + "id": 3111, "nodeType": "StructuredDocumentation", "src": "2642:730:17", "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" }, - "id": 3096, + "id": 3127, "implemented": true, "kind": "function", "modifiers": [], @@ -3956,17 +3956,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3085, + "id": 3116, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3082, + "id": 3113, "mutability": "mutable", "name": "target", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3096, + "scope": 3127, "src": "3399:14:17", "stateVariable": false, "storageLocation": "default", @@ -3975,7 +3975,7 @@ "typeString": "address" }, "typeName": { - "id": 3081, + "id": 3112, "name": "address", "nodeType": "ElementaryTypeName", "src": "3399:7:17", @@ -3990,12 +3990,12 @@ }, { "constant": false, - "id": 3084, + "id": 3115, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3096, + "scope": 3127, "src": "3415:17:17", "stateVariable": false, "storageLocation": "memory", @@ -4004,7 +4004,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3083, + "id": 3114, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3415:5:17", @@ -4020,17 +4020,17 @@ "src": "3398:35:17" }, "returnParameters": { - "id": 3088, + "id": 3119, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3087, + "id": 3118, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3096, + "scope": 3127, "src": "3452:12:17", "stateVariable": false, "storageLocation": "memory", @@ -4039,7 +4039,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3086, + "id": 3117, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3452:5:17", @@ -4054,7 +4054,7 @@ ], "src": "3451:14:17" }, - "scope": 3220, + "scope": 3251, "src": "3377:171:17", "stateMutability": "nonpayable", "virtual": false, @@ -4062,7 +4062,7 @@ }, { "body": { - "id": 3115, + "id": 3146, "nodeType": "Block", "src": "3887:77:17", "statements": [ @@ -4072,11 +4072,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3109, + "id": 3140, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3099, + "referencedDeclaration": 3130, "src": "3927:6:17", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4085,11 +4085,11 @@ }, { "argumentTypes": null, - "id": 3110, + "id": 3141, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3101, + "referencedDeclaration": 3132, "src": "3935:4:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -4099,7 +4099,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3111, + "id": 3142, "isConstant": false, "isLValue": false, "isPure": true, @@ -4116,11 +4116,11 @@ }, { "argumentTypes": null, - "id": 3112, + "id": 3143, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3103, + "referencedDeclaration": 3134, "src": "3944:12:17", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -4147,18 +4147,18 @@ "typeString": "string memory" } ], - "id": 3108, + "id": 3139, "name": "_functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3219, + "referencedDeclaration": 3250, "src": "3904:22:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 3113, + "id": 3144, "isConstant": false, "isLValue": false, "isPure": false, @@ -4173,20 +4173,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 3107, - "id": 3114, + "functionReturnParameters": 3138, + "id": 3145, "nodeType": "Return", "src": "3897:60:17" } ] }, "documentation": { - "id": 3097, + "id": 3128, "nodeType": "StructuredDocumentation", "src": "3554:211:17", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" }, - "id": 3116, + "id": 3147, "implemented": true, "kind": "function", "modifiers": [], @@ -4194,17 +4194,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3104, + "id": 3135, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3099, + "id": 3130, "mutability": "mutable", "name": "target", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3116, + "scope": 3147, "src": "3792:14:17", "stateVariable": false, "storageLocation": "default", @@ -4213,7 +4213,7 @@ "typeString": "address" }, "typeName": { - "id": 3098, + "id": 3129, "name": "address", "nodeType": "ElementaryTypeName", "src": "3792:7:17", @@ -4228,12 +4228,12 @@ }, { "constant": false, - "id": 3101, + "id": 3132, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3116, + "scope": 3147, "src": "3808:17:17", "stateVariable": false, "storageLocation": "memory", @@ -4242,7 +4242,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3100, + "id": 3131, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3808:5:17", @@ -4256,12 +4256,12 @@ }, { "constant": false, - "id": 3103, + "id": 3134, "mutability": "mutable", "name": "errorMessage", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3116, + "scope": 3147, "src": "3827:26:17", "stateVariable": false, "storageLocation": "memory", @@ -4270,7 +4270,7 @@ "typeString": "string" }, "typeName": { - "id": 3102, + "id": 3133, "name": "string", "nodeType": "ElementaryTypeName", "src": "3827:6:17", @@ -4286,17 +4286,17 @@ "src": "3791:63:17" }, "returnParameters": { - "id": 3107, + "id": 3138, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3106, + "id": 3137, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3116, + "scope": 3147, "src": "3873:12:17", "stateVariable": false, "storageLocation": "memory", @@ -4305,7 +4305,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3105, + "id": 3136, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3873:5:17", @@ -4320,7 +4320,7 @@ ], "src": "3872:14:17" }, - "scope": 3220, + "scope": 3251, "src": "3770:194:17", "stateMutability": "nonpayable", "virtual": false, @@ -4328,7 +4328,7 @@ }, { "body": { - "id": 3135, + "id": 3166, "nodeType": "Block", "src": "4439:111:17", "statements": [ @@ -4338,11 +4338,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3129, + "id": 3160, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3119, + "referencedDeclaration": 3150, "src": "4478:6:17", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4351,11 +4351,11 @@ }, { "argumentTypes": null, - "id": 3130, + "id": 3161, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3121, + "referencedDeclaration": 3152, "src": "4486:4:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -4364,11 +4364,11 @@ }, { "argumentTypes": null, - "id": 3131, + "id": 3162, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3123, + "referencedDeclaration": 3154, "src": "4492:5:17", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4378,7 +4378,7 @@ { "argumentTypes": null, "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", - "id": 3132, + "id": 3163, "isConstant": false, "isLValue": false, "isPure": true, @@ -4413,21 +4413,21 @@ "typeString": "literal_string \"Address: low-level call with value failed\"" } ], - "id": 3128, + "id": 3159, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ - 3136, - 3169 + 3167, + 3200 ], - "referencedDeclaration": 3169, + "referencedDeclaration": 3200, "src": "4456:21:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 3133, + "id": 3164, "isConstant": false, "isLValue": false, "isPure": false, @@ -4442,20 +4442,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 3127, - "id": 3134, + "functionReturnParameters": 3158, + "id": 3165, "nodeType": "Return", "src": "4449:94:17" } ] }, "documentation": { - "id": 3117, + "id": 3148, "nodeType": "StructuredDocumentation", "src": "3970:351:17", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" }, - "id": 3136, + "id": 3167, "implemented": true, "kind": "function", "modifiers": [], @@ -4463,17 +4463,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3124, + "id": 3155, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3119, + "id": 3150, "mutability": "mutable", "name": "target", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3136, + "scope": 3167, "src": "4357:14:17", "stateVariable": false, "storageLocation": "default", @@ -4482,7 +4482,7 @@ "typeString": "address" }, "typeName": { - "id": 3118, + "id": 3149, "name": "address", "nodeType": "ElementaryTypeName", "src": "4357:7:17", @@ -4497,12 +4497,12 @@ }, { "constant": false, - "id": 3121, + "id": 3152, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3136, + "scope": 3167, "src": "4373:17:17", "stateVariable": false, "storageLocation": "memory", @@ -4511,7 +4511,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3120, + "id": 3151, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4373:5:17", @@ -4525,12 +4525,12 @@ }, { "constant": false, - "id": 3123, + "id": 3154, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3136, + "scope": 3167, "src": "4392:13:17", "stateVariable": false, "storageLocation": "default", @@ -4539,7 +4539,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3122, + "id": 3153, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4392:7:17", @@ -4555,17 +4555,17 @@ "src": "4356:50:17" }, "returnParameters": { - "id": 3127, + "id": 3158, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3126, + "id": 3157, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3136, + "scope": 3167, "src": "4425:12:17", "stateVariable": false, "storageLocation": "memory", @@ -4574,7 +4574,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3125, + "id": 3156, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4425:5:17", @@ -4589,7 +4589,7 @@ ], "src": "4424:14:17" }, - "scope": 3220, + "scope": 3251, "src": "4326:224:17", "stateMutability": "nonpayable", "virtual": false, @@ -4597,7 +4597,7 @@ }, { "body": { - "id": 3168, + "id": 3199, "nodeType": "Block", "src": "4939:172:17", "statements": [ @@ -4611,7 +4611,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3157, + "id": 3188, "isConstant": false, "isLValue": false, "isPure": false, @@ -4623,14 +4623,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3153, + "id": 3184, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "4965:4:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$3220", + "typeIdentifier": "t_contract$_Address_$3251", "typeString": "library Address" } } @@ -4638,11 +4638,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Address_$3220", + "typeIdentifier": "t_contract$_Address_$3251", "typeString": "library Address" } ], - "id": 3152, + "id": 3183, "isConstant": false, "isLValue": false, "isPure": true, @@ -4654,7 +4654,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 3151, + "id": 3182, "name": "address", "nodeType": "ElementaryTypeName", "src": "4957:7:17", @@ -4664,7 +4664,7 @@ } } }, - "id": 3154, + "id": 3185, "isConstant": false, "isLValue": false, "isPure": false, @@ -4679,7 +4679,7 @@ "typeString": "address" } }, - "id": 3155, + "id": 3186, "isConstant": false, "isLValue": false, "isPure": false, @@ -4697,11 +4697,11 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 3156, + "id": 3187, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3143, + "referencedDeclaration": 3174, "src": "4982:5:17", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4717,7 +4717,7 @@ { "argumentTypes": null, "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", - "id": 3158, + "id": 3189, "isConstant": false, "isLValue": false, "isPure": true, @@ -4744,7 +4744,7 @@ "typeString": "literal_string \"Address: insufficient balance for call\"" } ], - "id": 3150, + "id": 3181, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4758,7 +4758,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 3159, + "id": 3190, "isConstant": false, "isLValue": false, "isPure": false, @@ -4773,7 +4773,7 @@ "typeString": "tuple()" } }, - "id": 3160, + "id": 3191, "nodeType": "ExpressionStatement", "src": "4949:81:17" }, @@ -4783,11 +4783,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3162, + "id": 3193, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3139, + "referencedDeclaration": 3170, "src": "5070:6:17", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4796,11 +4796,11 @@ }, { "argumentTypes": null, - "id": 3163, + "id": 3194, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3141, + "referencedDeclaration": 3172, "src": "5078:4:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -4809,11 +4809,11 @@ }, { "argumentTypes": null, - "id": 3164, + "id": 3195, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3143, + "referencedDeclaration": 3174, "src": "5084:5:17", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4822,11 +4822,11 @@ }, { "argumentTypes": null, - "id": 3165, + "id": 3196, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3145, + "referencedDeclaration": 3176, "src": "5091:12:17", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -4853,18 +4853,18 @@ "typeString": "string memory" } ], - "id": 3161, + "id": 3192, "name": "_functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3219, + "referencedDeclaration": 3250, "src": "5047:22:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, - "id": 3166, + "id": 3197, "isConstant": false, "isLValue": false, "isPure": false, @@ -4879,20 +4879,20 @@ "typeString": "bytes memory" } }, - "functionReturnParameters": 3149, - "id": 3167, + "functionReturnParameters": 3180, + "id": 3198, "nodeType": "Return", "src": "5040:64:17" } ] }, "documentation": { - "id": 3137, + "id": 3168, "nodeType": "StructuredDocumentation", "src": "4556:237:17", "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" }, - "id": 3169, + "id": 3200, "implemented": true, "kind": "function", "modifiers": [], @@ -4900,17 +4900,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3146, + "id": 3177, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3139, + "id": 3170, "mutability": "mutable", "name": "target", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3169, + "scope": 3200, "src": "4829:14:17", "stateVariable": false, "storageLocation": "default", @@ -4919,7 +4919,7 @@ "typeString": "address" }, "typeName": { - "id": 3138, + "id": 3169, "name": "address", "nodeType": "ElementaryTypeName", "src": "4829:7:17", @@ -4934,12 +4934,12 @@ }, { "constant": false, - "id": 3141, + "id": 3172, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3169, + "scope": 3200, "src": "4845:17:17", "stateVariable": false, "storageLocation": "memory", @@ -4948,7 +4948,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3140, + "id": 3171, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4845:5:17", @@ -4962,12 +4962,12 @@ }, { "constant": false, - "id": 3143, + "id": 3174, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3169, + "scope": 3200, "src": "4864:13:17", "stateVariable": false, "storageLocation": "default", @@ -4976,7 +4976,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3142, + "id": 3173, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4864:7:17", @@ -4990,12 +4990,12 @@ }, { "constant": false, - "id": 3145, + "id": 3176, "mutability": "mutable", "name": "errorMessage", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3169, + "scope": 3200, "src": "4879:26:17", "stateVariable": false, "storageLocation": "memory", @@ -5004,7 +5004,7 @@ "typeString": "string" }, "typeName": { - "id": 3144, + "id": 3175, "name": "string", "nodeType": "ElementaryTypeName", "src": "4879:6:17", @@ -5020,17 +5020,17 @@ "src": "4828:78:17" }, "returnParameters": { - "id": 3149, + "id": 3180, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3148, + "id": 3179, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3169, + "scope": 3200, "src": "4925:12:17", "stateVariable": false, "storageLocation": "memory", @@ -5039,7 +5039,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3147, + "id": 3178, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4925:5:17", @@ -5054,7 +5054,7 @@ ], "src": "4924:14:17" }, - "scope": 3220, + "scope": 3251, "src": "4798:313:17", "stateMutability": "nonpayable", "virtual": false, @@ -5062,7 +5062,7 @@ }, { "body": { - "id": 3218, + "id": 3249, "nodeType": "Block", "src": "5261:814:17", "statements": [ @@ -5075,11 +5075,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3184, + "id": 3215, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3171, + "referencedDeclaration": 3202, "src": "5290:6:17", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5094,18 +5094,18 @@ "typeString": "address" } ], - "id": 3183, + "id": 3214, "name": "isContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3045, + "referencedDeclaration": 3076, "src": "5279:10:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 3185, + "id": 3216, "isConstant": false, "isLValue": false, "isPure": false, @@ -5123,7 +5123,7 @@ { "argumentTypes": null, "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", - "id": 3186, + "id": 3217, "isConstant": false, "isLValue": false, "isPure": true, @@ -5150,7 +5150,7 @@ "typeString": "literal_string \"Address: call to non-contract\"" } ], - "id": 3182, + "id": 3213, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5164,7 +5164,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 3187, + "id": 3218, "isConstant": false, "isLValue": false, "isPure": false, @@ -5179,24 +5179,24 @@ "typeString": "tuple()" } }, - "id": 3188, + "id": 3219, "nodeType": "ExpressionStatement", "src": "5271:60:17" }, { "assignments": [ - 3190, - 3192 + 3221, + 3223 ], "declarations": [ { "constant": false, - "id": 3190, + "id": 3221, "mutability": "mutable", "name": "success", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3218, + "scope": 3249, "src": "5402:12:17", "stateVariable": false, "storageLocation": "default", @@ -5205,7 +5205,7 @@ "typeString": "bool" }, "typeName": { - "id": 3189, + "id": 3220, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5402:4:17", @@ -5219,12 +5219,12 @@ }, { "constant": false, - "id": 3192, + "id": 3223, "mutability": "mutable", "name": "returndata", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3218, + "scope": 3249, "src": "5416:23:17", "stateVariable": false, "storageLocation": "memory", @@ -5233,7 +5233,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3191, + "id": 3222, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5416:5:17", @@ -5246,17 +5246,17 @@ "visibility": "internal" } ], - "id": 3199, + "id": 3230, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3197, + "id": 3228, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3173, + "referencedDeclaration": 3204, "src": "5474:4:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -5275,18 +5275,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3193, + "id": 3224, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3171, + "referencedDeclaration": 3202, "src": "5443:6:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3194, + "id": 3225, "isConstant": false, "isLValue": false, "isPure": false, @@ -5300,7 +5300,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 3196, + "id": 3227, "isConstant": false, "isLValue": false, "isPure": false, @@ -5312,11 +5312,11 @@ "options": [ { "argumentTypes": null, - "id": 3195, + "id": 3226, "name": "weiValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3175, + "referencedDeclaration": 3206, "src": "5463:8:17", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5330,7 +5330,7 @@ "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 3198, + "id": 3229, "isConstant": false, "isLValue": false, "isPure": false, @@ -5351,11 +5351,11 @@ { "condition": { "argumentTypes": null, - "id": 3200, + "id": 3231, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3190, + "referencedDeclaration": 3221, "src": "5493:7:17", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5363,7 +5363,7 @@ } }, "falseBody": { - "id": 3216, + "id": 3247, "nodeType": "Block", "src": "5550:519:17", "statements": [ @@ -5374,7 +5374,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3207, + "id": 3238, "isConstant": false, "isLValue": false, "isPure": false, @@ -5383,18 +5383,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3204, + "id": 3235, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3192, + "referencedDeclaration": 3223, "src": "5634:10:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3205, + "id": 3236, "isConstant": false, "isLValue": false, "isPure": false, @@ -5413,7 +5413,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3206, + "id": 3237, "isConstant": false, "isLValue": false, "isPure": true, @@ -5435,7 +5435,7 @@ } }, "falseBody": { - "id": 3214, + "id": 3245, "nodeType": "Block", "src": "6006:53:17", "statements": [ @@ -5445,11 +5445,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3211, + "id": 3242, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3177, + "referencedDeclaration": 3208, "src": "6031:12:17", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -5464,7 +5464,7 @@ "typeString": "string memory" } ], - "id": 3210, + "id": 3241, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5478,7 +5478,7 @@ "typeString": "function (string memory) pure" } }, - "id": 3212, + "id": 3243, "isConstant": false, "isLValue": false, "isPure": false, @@ -5493,17 +5493,17 @@ "typeString": "tuple()" } }, - "id": 3213, + "id": 3244, "nodeType": "ExpressionStatement", "src": "6024:20:17" } ] }, - "id": 3215, + "id": 3246, "nodeType": "IfStatement", "src": "5630:429:17", "trueBody": { - "id": 3209, + "id": 3240, "nodeType": "Block", "src": "5657:343:17", "statements": [ @@ -5588,21 +5588,21 @@ "evmVersion": "istanbul", "externalReferences": [ { - "declaration": 3192, + "declaration": 3223, "isOffset": false, "isSlot": false, "src": "5892:10:17", "valueSize": 1 }, { - "declaration": 3192, + "declaration": 3223, "isOffset": false, "isSlot": false, "src": "5939:10:17", "valueSize": 1 } ], - "id": 3208, + "id": 3239, "nodeType": "InlineAssembly", "src": "5832:154:17" } @@ -5611,30 +5611,30 @@ } ] }, - "id": 3217, + "id": 3248, "nodeType": "IfStatement", "src": "5489:580:17", "trueBody": { - "id": 3203, + "id": 3234, "nodeType": "Block", "src": "5502:42:17", "statements": [ { "expression": { "argumentTypes": null, - "id": 3201, + "id": 3232, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3192, + "referencedDeclaration": 3223, "src": "5523:10:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 3181, - "id": 3202, + "functionReturnParameters": 3212, + "id": 3233, "nodeType": "Return", "src": "5516:17:17" } @@ -5644,7 +5644,7 @@ ] }, "documentation": null, - "id": 3219, + "id": 3250, "implemented": true, "kind": "function", "modifiers": [], @@ -5652,17 +5652,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3178, + "id": 3209, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3171, + "id": 3202, "mutability": "mutable", "name": "target", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3219, + "scope": 3250, "src": "5149:14:17", "stateVariable": false, "storageLocation": "default", @@ -5671,7 +5671,7 @@ "typeString": "address" }, "typeName": { - "id": 3170, + "id": 3201, "name": "address", "nodeType": "ElementaryTypeName", "src": "5149:7:17", @@ -5686,12 +5686,12 @@ }, { "constant": false, - "id": 3173, + "id": 3204, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3219, + "scope": 3250, "src": "5165:17:17", "stateVariable": false, "storageLocation": "memory", @@ -5700,7 +5700,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3172, + "id": 3203, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5165:5:17", @@ -5714,12 +5714,12 @@ }, { "constant": false, - "id": 3175, + "id": 3206, "mutability": "mutable", "name": "weiValue", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3219, + "scope": 3250, "src": "5184:16:17", "stateVariable": false, "storageLocation": "default", @@ -5728,7 +5728,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3174, + "id": 3205, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5184:7:17", @@ -5742,12 +5742,12 @@ }, { "constant": false, - "id": 3177, + "id": 3208, "mutability": "mutable", "name": "errorMessage", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3219, + "scope": 3250, "src": "5202:26:17", "stateVariable": false, "storageLocation": "memory", @@ -5756,7 +5756,7 @@ "typeString": "string" }, "typeName": { - "id": 3176, + "id": 3207, "name": "string", "nodeType": "ElementaryTypeName", "src": "5202:6:17", @@ -5772,17 +5772,17 @@ "src": "5148:81:17" }, "returnParameters": { - "id": 3181, + "id": 3212, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3180, + "id": 3211, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3219, + "scope": 3250, "src": "5247:12:17", "stateVariable": false, "storageLocation": "memory", @@ -5791,7 +5791,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3179, + "id": 3210, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5247:5:17", @@ -5806,14 +5806,14 @@ ], "src": "5246:14:17" }, - "scope": 3220, + "scope": 3251, "src": "5117:958:17", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" } ], - "scope": 3221, + "scope": 3252, "src": "126:5951:17" } ], @@ -5821,16 +5821,20 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:06.001Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.727Z", "devdoc": { "details": "Collection of functions related to the address type", - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/BadgeFactory.json b/abi/BadgeFactory.json index 15756e8..5382703 100644 --- a/abi/BadgeFactory.json +++ b/abi/BadgeFactory.json @@ -1108,9 +1108,9 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"maker_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"redeemer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"tokenURI\",\"type\":\"string\"}],\"name\":\"BadgeActivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"}],\"name\":\"NewTemplate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAUSER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEMPLATER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"tokenURI\",\"type\":\"string\"}],\"name\":\"activateBadge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"addTemplater\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burnBadge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"}],\"name\":\"createTemplate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getBadgeTemplate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"}],\"name\":\"getBadgeTemplateQuantity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"}],\"name\":\"getTemplate\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTemplatesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"redeemed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"removeTemplater\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"}],\"name\":\"setBaseURI\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"activateBadge(bytes32[],uint256,string)\":{\"details\":\"Verify if the caller is a redeemer\",\"params\":{\"proof\":\"Merkle Proof\",\"templateId\":\"Template Id\",\"tokenURI\":\"Token URI\"},\"returns\":{\"_0\":\"True If the new Badge is Activated\"}},\"addTemplater(address)\":{\"details\":\"Access restricted only for Admins\",\"params\":{\"guy\":\"Address of the new Templater\"},\"returns\":{\"_0\":\"True if the guy address is added as Templater\"}},\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"baseURI()\":{\"details\":\"Returns the base URI set via {_setBaseURI}. This will be automatically added as a prefix in {tokenURI} to each token's URI, or to the token ID if no specific URI is set for that token ID.\"},\"burn(uint256)\":{\"details\":\"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator.\"},\"burnBadge(uint256)\":{\"details\":\"burn() Check if the caller is approved or owner of the Badge\",\"params\":{\"tokenId\":\"Token Id of the Badge to burn\"},\"returns\":{\"_0\":\"True if the Badge has been burned\"}},\"createTemplate(string,string,string)\":{\"details\":\"Access restricted to only Templaters\",\"params\":{\"description\":\"A description of the new template\",\"image\":\"A filename of the new template\",\"name\":\"The name of the new template\"},\"returns\":{\"_0\":\"True If the new Template is Created\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"getBadgeTemplate(uint256)\":{\"details\":\"Check if the tokenId exists\",\"params\":{\"tokenId\":\"Token Id of the Badge\"},\"returns\":{\"_0\":\"Template Id associated with the tokenId\"}},\"getBadgeTemplateQuantity(uint256)\":{\"details\":\"Check if the template Id exists\",\"params\":{\"templateId\":\"Template Id\"},\"returns\":{\"_0\":\"Quantity of Badges associated with templateId\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"getTemplate(uint256)\":{\"details\":\"Check if templateId exists\",\"params\":{\"templateId\":\"Template Id of the template to return\"},\"returns\":{\"name\":\"description image Of the specified templateId\"}},\"getTemplatesCount()\":{\"details\":\"Return lenght of template array\",\"returns\":{\"count\":\"The current number of templates\"}},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"pause()\":{\"details\":\"the caller must have the 'PAUSER_ROLE'\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"removeTemplater(address)\":{\"details\":\"Access restricted only for Admins\",\"params\":{\"guy\":\"Address of the Templater\"},\"returns\":{\"_0\":\"True if the guy address is removed as Templater\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setBaseURI(string)\":{\"details\":\"Update the baseURI specified in the constructor\",\"params\":{\"baseURI\":\"New baseURI\"},\"returns\":{\"_0\":\"True if the new baseURI is set\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"details\":\"the caller must have the 'PAUSER_ROLE'\"}},\"stateVariables\":{\"_templateQuantities\":{\"details\":\"Supplies of each badge template\"}}},\"userdoc\":{\"methods\":{\"activateBadge(bytes32[],uint256,string)\":{\"notice\":\"Activate Badge by redeemers\"},\"addTemplater(address)\":{\"notice\":\"Add a new Templater\"},\"burnBadge(uint256)\":{\"notice\":\"Burn Badge\"},\"createTemplate(string,string,string)\":{\"notice\":\"Create a new template\"},\"getBadgeTemplate(uint256)\":{\"notice\":\"Getter function for templateId associated with the tokenId\"},\"getBadgeTemplateQuantity(uint256)\":{\"notice\":\"Getter function for number of badges associated with templateId\"},\"getTemplate(uint256)\":{\"notice\":\"Getter function for templates\"},\"getTemplatesCount()\":{\"notice\":\"Getter function for templates count\"},\"pause()\":{\"notice\":\"Pause all the functions\"},\"removeTemplater(address)\":{\"notice\":\"Remove a Templater\"},\"setBaseURI(string)\":{\"notice\":\"Set the baseURI\"},\"unpause()\":{\"notice\":\"Unpause all the functions\"}}}},\"settings\":{\"compilationTarget\":{\"/home/sencha/maker-badges/contracts/BadgeFactory.sol\":\"BadgeFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/sencha/maker-badges/contracts/BadgeFactory.sol\":{\"keccak256\":\"0x53f01b2eb5cc09965b6599b2938afb1c7add3f9d985a53dbf06241a70815d9bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://449754b1f6832fa06a5cf54112b9461794d9a1d73bffaa88bc5b766189941055\",\"dweb:/ipfs/QmUKY6SKMZa4xwbxqgiE6HuX87GgNK4ED6sTMoMFvPChCy\"]},\"/home/sencha/maker-badges/contracts/BadgeRoles.sol\":{\"keccak256\":\"0x272f85f9cb8e8d0e3bcc5e0b7269a777cf52ae93dfa4ac531eee8a5c6d2ae689\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://19add032eba97289f23395efe5dd3178c9d98b23e44bbdd0706615e554cca0dd\",\"dweb:/ipfs/QmXSMr9Ur3wVbWcVEchsmiBTtRQwyx4jti8W5EbjuZ4pGc\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x92f7900d382761c7faefeaced81c6b4f1aae909ed0551803bfe8f27101956360\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://407c0864143968542e5cf5aa7556916d2cf292b201e3dadb65662e9a3aa24187\",\"dweb:/ipfs/QmSnXzYAUaGLGr7uofRbgQraTJvatbjQLBPhyYiMd18oUJ\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"@openzeppelin/contracts/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x96a652802a06645a5908f74f104ec95ff0897e261e7028ee319bafc55582b597\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5afea8071316055c01a3d144da77523b8ae7ec8295e99559000cb07b23b98d30\",\"dweb:/ipfs/QmX14dHGgyErJb3R7wSNBSgxLdyX6EAVwJsZ6yK1xyG1Mo\"]},\"@openzeppelin/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0xb046d18f9d09683ca1c0ed6d80c61da8a8a7d9b30bad70a17b898538683eff74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4728713afa6ae36cc9e92c7107c796a313add3ec20f813be2cde76c814486b2a\",\"dweb:/ipfs/QmUJBTXvYaGDF5PVnd5pUvYerc9DRXvqANDzgCzAp3FkkA\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xfa152b6e88a1dc50780e8f1580426dc23ad2e1e2c2f086a088adf206a202f453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5127b264994adab88fae419b1c493efc5acd07134c19ee5c0397e50018291ebf\",\"dweb:/ipfs/QmWwJZVhvdmvUCdimbb6R2Jiu59zjPqm6XTMchM6LaEHAp\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x1071a23188ba7f5bb16f51b0b01a67fd41fe56f862d8f83985788cf46f3b91bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c7082ca99b93f2e541cafaad00ed32675adf0752eab78eccabcf91dec9fd5d73\",\"dweb:/ipfs/QmdqooMmYBQVi7p6subDFM4e1944AuLjZUpHMjGtae7Lgd\"]},\"@openzeppelin/contracts/token/ERC721/ERC721Burnable.sol\":{\"keccak256\":\"0x5181bc84ec1b054bffda75619dd01f2f760d101da24bdba6ca786f6966a35695\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15323e3edc0407ab3859fc4aeca39d12d5e2e21c9ee36cb87a2d4c128ff8ab00\",\"dweb:/ipfs/QmRz9vQa4Xx8X8V38oABZ2H4ALaki39ueyaSaytw5SFj2M\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x227bafd3e165b13f5d98c42a44376e48d41f4a265db8803f2707faaeae9659aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9aa7959a30871669ce46172cd117b084b607d602d9ce695ce79005582b0b69b\",\"dweb:/ipfs/QmXZUWeLXmArQinHL4RnacJLT22GvCExqREYM6pHLX7CX9\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\":{\"keccak256\":\"0x3636662804cd8f474536b2875a9038a4c3fb91879f1bbff48af5c3f140fcd2f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9fab8521263fa581544000cb57335a3f2e6bcdfbb5579d3ceaa5acf741c67c4f\",\"dweb:/ipfs/QmZfXnMom7JSNtfyie5yGPN1SUC4SmHbz4ScVBH88URmA7\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0xe7f984cedc00a138dc27f263c73c32ba9a4b2fd23b6c34ac46f46c074b943538\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f4acda12f076fe7584921241ddbb5b460ca7cad6cb8a42252ac7f2a9f539127\",\"dweb:/ipfs/QmQmfhkEv9GrhdWe67QtXnU19AMuoEmy31QnHPkucdYLjZ\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x321ee37ef4925020aa818a03ec7fe48e057561f65ab009a84f6c20c86026ade7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01f9d74a17a56024984251b97e428e24c9d3abffbae5bd290f0ec263c82e9694\",\"dweb:/ipfs/QmRryCuuXu2ukrDmatB8TqdEhPLiK6NBRt41RiPUaX1qKy\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0x2d68b8e6425249cd05cc0a66ea50cb5b8d10cbdac59c6de834e1002232813faf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3ce6b6ac17c67bba01e9c8c778f82f68fd4823bd083359cdd03040b70eeeba3\",\"dweb:/ipfs/QmX4t1jWwKaAkacvmQxEG5rBtLXg3EHw6pRjKhMZR8iw3n\"]},\"@openzeppelin/contracts/utils/EnumerableMap.sol\":{\"keccak256\":\"0x244e4b74b17716120cf28e58636f11c699b8c0c94628bd952a95cee038d7e32b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://198d566157120c526bd6b5086b32cae85a11389b8a538f533ba9f9447915da0e\",\"dweb:/ipfs/QmeE6d8KWERx7f1FVS5tMnitNJxBm2yWXRSEUBF7R6voLh\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c\",\"dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x79484115dbfa737054f73e041009a02eeb434dd81be5d684bf4255ad3b5ab558\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12c119699463450c2544f5b9d8709b5e9e9164c62948a79c3ec53423a051d969\",\"dweb:/ipfs/QmPJduzSAaekq447QeFqAp3E7dc8CnNk5ajofckJ4ahA7Q\"]}},\"version\":1}", - "bytecode": "0x60a06040523480156200001157600080fd5b50604051620066ea380380620066ea833981810160405260208110156200003757600080fd5b81019080805190602001909291905050506040518060400160405280600b81526020017f4d616b65724261646765730000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4d414b45520000000000000000000000000000000000000000000000000000008152506000620000c66200034b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000600260006101000a81548160ff021916908315150217905550620001a36000801b620001976200035360201b60201c565b6200037c60201b60201c565b620001f960405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e0190506040518091039020620001ed6200035360201b60201c565b6200037c60201b60201c565b6200024f60405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b0190506040518091039020620002436200035360201b60201c565b6200037c60201b60201c565b620002676301ffc9a760e01b6200039260201b60201c565b81600990805190602001906200027f92919062000631565b5080600a90805190602001906200029892919062000631565b50620002b16380ac58cd60e01b6200039260201b60201c565b620002c9635b5e139f60e01b6200039260201b60201c565b620002e163780e9d6360e01b6200039260201b60201c565b50506200030d604051806060016040528060228152602001620066c8602291396200049c60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505050620006e0565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200038e8282620004b860201b60201c565b5050565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156200042f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b600160036000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b80600c9080519060200190620004b492919062000631565b5050565b620004e781600160008581526020019081526020016000206000016200055c60201b62003e1d1790919060201c565b156200055857620004fd6200034b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006200058c836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6200059460201b60201c565b905092915050565b6000620005a883836200060e60201b60201c565b6200060357826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905062000608565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200067457805160ff1916838001178555620006a5565b82800160010185558215620006a5579182015b82811115620006a457825182559160200191906001019062000687565b5b509050620006b49190620006b8565b5090565b620006dd91905b80821115620006d9576000816000905550600101620006bf565b5090565b90565b60805160601c615fc562000703600039806134b3528061359c5250615fc56000f3fe608060405234801561001057600080fd5b50600436106102835760003560e01c80636352211e1161015c578063a22cb465116100ce578063d4c10e4611610087578063d4c10e4614611176578063d547741f14611266578063e63ab1e9146112b4578063e6c0d714146112d2578063e985e9c51461132e578063f2fde38b146113aa57610284565b8063a22cb46514610ddf578063b5900eea14610e2f578063b88d4fde14610e4d578063c87b56dd14610f52578063ca15c87314610ff9578063ccb4bcb61461103b57610284565b80638456cb59116101205780638456cb5914610c0c5780638da5cb5b14610c165780639010d07c14610c6057806391d1485414610cd857806395d89b4114610d3e578063a217fddf14610dc157610284565b80636352211e14610a9b5780636c0360eb14610b095780636cdd0a1614610b8c57806370a0823114610baa578063715018a614610c0257610284565b806336568abe116101f55780634de46fd0116101b95780634de46fd0146108bc5780634f6ccce7146108fe57806355de28ae1461094057806355f804b3146109865780635c975abb14610a175780635ddb084514610a3957610284565b806336568abe1461076c5780633f4ba83a146107ba57806342842e0e146107c457806342966c68146108325780634ba360ba1461086057610284565b806318160ddd1161024757806318160ddd1461046f57806323b872dd1461048d578063248a9ca3146104fb5780632f2ff15d1461053d5780632f745c591461058b57806331543cf4146105ed57610284565b806301ffc9a71461028957806304523af1146102ee57806306fdde0314610330578063081812fc146103b3578063095ea7b31461042157610284565b5b600080fd5b6102d46004803603602081101561029f57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506113ee565b604051808215151515815260200191505060405180910390f35b61031a6004803603602081101561030457600080fd5b8101908080359060200190929190505050611456565b6040518082815260200191505060405180910390f35b610338611570565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561037857808201518184015260208101905061035d565b50505050905090810190601f1680156103a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103df600480360360208110156103c957600080fd5b8101908080359060200190929190505050611612565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61046d6004803603604081101561043757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116ad565b005b6104776117f1565b6040518082815260200191505060405180910390f35b6104f9600480360360608110156104a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611802565b005b6105276004803603602081101561051157600080fd5b8101908080359060200190929190505050611878565b6040518082815260200191505060405180910390f35b6105896004803603604081101561055357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611898565b005b6105d7600480360360408110156105a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611922565b6040518082815260200191505060405180910390f35b6106196004803603602081101561060357600080fd5b810190808035906020019092919050505061197d565b60405180806020018060200180602001848103845287818151815260200191508051906020019080838360005b83811015610661578082015181840152602081019050610646565b50505050905090810190601f16801561068e5780820380516001836020036101000a031916815260200191505b50848103835286818151815260200191508051906020019080838360005b838110156106c75780820151818401526020810190506106ac565b50505050905090810190601f1680156106f45780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b8381101561072d578082015181840152602081019050610712565b50505050905090810190601f16801561075a5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b6107b86004803603604081101561078257600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d08565b005b6107c2611da1565b005b610830600480360360608110156107da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e3f565b005b61085e6004803603602081101561084857600080fd5b8101908080359060200190929190505050611e5f565b005b6108a26004803603602081101561087657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ed1565b604051808215151515815260200191505060405180910390f35b6108e8600480360360208110156108d257600080fd5b810190808035906020019092919050505061204b565b6040518082815260200191505060405180910390f35b61092a6004803603602081101561091457600080fd5b8101908080359060200190929190505050612166565b6040518082815260200191505060405180910390f35b61096c6004803603602081101561095657600080fd5b8101908080359060200190929190505050612189565b604051808215151515815260200191505060405180910390f35b6109fd6004803603602081101561099c57600080fd5b81019080803590602001906401000000008111156109b957600080fd5b8201836020820111156109cb57600080fd5b803590602001918460018302840111640100000000831117156109ed57600080fd5b909192939192939050505061226c565b604051808215151515815260200191505060405180910390f35b610a1f61238e565b604051808215151515815260200191505060405180910390f35b610a8560048036036040811015610a4f57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123a5565b6040518082815260200191505060405180910390f35b610ac760048036036020811015610ab157600080fd5b81019080803590602001909291905050506123ca565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b11612401565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b51578082015181840152602081019050610b36565b50505050905090810190601f168015610b7e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610b946124a3565b6040518082815260200191505060405180910390f35b610bec60048036036020811015610bc057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124dc565b6040518082815260200191505060405180910390f35b610c0a6125b1565b005b610c14612739565b005b610c1e6127d7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610c9660048036036040811015610c7657600080fd5b810190808035906020019092919080359060200190929190505050612800565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610d2460048036036040811015610cee57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612832565b604051808215151515815260200191505060405180910390f35b610d46612864565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d86578082015181840152602081019050610d6b565b50505050905090810190601f168015610db35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610dc9612906565b6040518082815260200191505060405180910390f35b610e2d60048036036040811015610df557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061290d565b005b610e37612ac5565b6040518082815260200191505060405180910390f35b610f5060048036036080811015610e6357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610eca57600080fd5b820183602082011115610edc57600080fd5b80359060200191846001830284011164010000000083111715610efe57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612b55565b005b610f7e60048036036020811015610f6857600080fd5b8101908080359060200190929190505050612bcd565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610fbe578082015181840152602081019050610fa3565b50505050905090810190601f168015610feb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6110256004803603602081101561100f57600080fd5b8101908080359060200190929190505050612eb6565b6040518082815260200191505060405180910390f35b61115c6004803603606081101561105157600080fd5b810190808035906020019064010000000081111561106e57600080fd5b82018360208201111561108057600080fd5b803590602001918460018302840111640100000000831117156110a257600080fd5b9091929391929390803590602001906401000000008111156110c357600080fd5b8201836020820111156110d557600080fd5b803590602001918460018302840111640100000000831117156110f757600080fd5b90919293919293908035906020019064010000000081111561111857600080fd5b82018360208201111561112a57600080fd5b8035906020019184600183028401116401000000008311171561114c57600080fd5b9091929391929390505050612edd565b604051808215151515815260200191505060405180910390f35b61124c6004803603606081101561118c57600080fd5b81019080803590602001906401000000008111156111a957600080fd5b8201836020820111156111bb57600080fd5b803590602001918460208302840111640100000000831117156111dd57600080fd5b9091929391929390803590602001909291908035906020019064010000000081111561120857600080fd5b82018360208201111561121a57600080fd5b8035906020019184600183028401116401000000008311171561123c57600080fd5b90919293919293905050506132ec565b604051808215151515815260200191505060405180910390f35b6112b26004803603604081101561127c57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061393e565b005b6112bc6139c8565b6040518082815260200191505060405180910390f35b611314600480360360208110156112e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613a01565b604051808215151515815260200191505060405180910390f35b6113906004803603604081101561134457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613b7c565b604051808215151515815260200191505060405180910390f35b6113ec600480360360208110156113c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613c10565b005b600060036000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6000600260009054906101000a900460ff16156114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b81600f8054905011611555576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f2074656d706c61746520776974682074686174206964000000000000000081525060200191505060405180910390fd5b60106000838152602001908152602001600020549050919050565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116085780601f106115dd57610100808354040283529160200191611608565b820191906000526020600020905b8154815290600101906020018083116115eb57829003601f168201915b5050505050905090565b600061161d82613e4d565b611672576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615e03602c913960400191505060405180910390fd5b6007600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006116b8826123ca565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561173f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615edf6021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661175e613e6a565b73ffffffffffffffffffffffffffffffffffffffff16148061178d575061178c81611787613e6a565b613b7c565b5b6117e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180615d566038913960400191505060405180910390fd5b6117ec8383613e72565b505050565b60006117fd6005613f2b565b905090565b61181361180d613e6a565b82613f40565b611868576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180615f006031913960400191505060405180910390fd5b611873838383614034565b505050565b600060016000838152602001908152602001600020600201549050919050565b6118bf60016000848152602001908152602001600020600201546118ba613e6a565b612832565b611914576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180615c21602f913960400191505060405180910390fd5b61191e82826140b8565b5050565b600061197582600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061414c90919063ffffffff16565b905092915050565b6060806060600260009054906101000a900460ff1615611a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b83600f8054905011611a7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f2074656d706c61746520776974682074686174206964000000000000000081525060200191505060405180910390fd5b611a87615ad3565b600f8581548110611a9457fe5b9060005260206000209060040201604051806080016040529081600082018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b465780601f10611b1b57610100808354040283529160200191611b46565b820191906000526020600020905b815481529060010190602001808311611b2957829003601f168201915b50505050508152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611be85780601f10611bbd57610100808354040283529160200191611be8565b820191906000526020600020905b815481529060010190602001808311611bcb57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c8a5780601f10611c5f57610100808354040283529160200191611c8a565b820191906000526020600020905b815481529060010190602001808311611c6d57829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050806000015181602001518260400151935093509350509193909250565b611d10613e6a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611d93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180615f61602f913960400191505060405180910390fd5b611d9d8282614166565b5050565b611de060405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902033612832565b611e35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180615c50602e913960400191505060405180910390fd5b611e3d6141fa565b565b611e5a83838360405180602001604052806000815250612b55565b505050565b611e70611e6a613e6a565b82613f40565b611ec5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180615f316030913960400191505060405180910390fd5b611ece81614303565b50565b6000611ee06000801b33612832565b611f52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616c6c6572206973206e6f7420616e2061646d696e0000000000000000000081525060200191505060405180910390fd5b611f9160405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083612832565b612003576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f677579206973206e6f7420612074656d706c617465720000000000000000000081525060200191505060405180910390fd5b61204260405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e01905060405180910390208361393e565b60019050919050565b6000600260009054906101000a900460ff16156120d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6120d982613e4d565b61214b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4552433732313a204e6f20746f6b656e2077697468207468617420696400000081525060200191505060405180910390fd5b60116000838152602001908152602001600020549050919050565b60008061217d83600561443d90919063ffffffff16565b50905080915050919050565b6000600260009054906101000a900460ff161561220e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b60006122198361204b565b90506122426001601060008481526020019081526020016000205461446c90919063ffffffff16565b601060008381526020019081526020016000208190555061226283611e5f565b6001915050919050565b6000612276613e6a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612337576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61238483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506144b6565b6001905092915050565b6000600260009054906101000a900460ff16905090565b600e602052816000526040600020602052806000526040600020600091509150505481565b60006123fa82604051806060016040528060298152602001615db86029913960056144d09092919063ffffffff16565b9050919050565b6060600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124995780601f1061246e57610100808354040283529160200191612499565b820191906000526020600020905b81548152906001019060200180831161247c57829003601f168201915b5050505050905090565b60405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180615d8e602a913960400191505060405180910390fd5b6125aa600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206144ef565b9050919050565b6125b9613e6a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461267a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61277860405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902033612832565b6127cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615e5b602c913960400191505060405180910390fd5b6127d5614504565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600061282a826001600086815260200190815260200160002060000161460e90919063ffffffff16565b905092915050565b600061285c826001600086815260200190815260200160002060000161462890919063ffffffff16565b905092915050565b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156128fc5780601f106128d1576101008083540402835291602001916128fc565b820191906000526020600020905b8154815290600101906020018083116128df57829003601f168201915b5050505050905090565b6000801b81565b612915613e6a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156129b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600860006129c3613e6a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16612a70613e6a565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b6000600260009054906101000a900460ff1615612b4a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b600f80549050905090565b612b66612b60613e6a565b83613f40565b612bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180615f006031913960400191505060405180910390fd5b612bc784848484614658565b50505050565b6060612bd882613e4d565b612c2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180615eb0602f913960400191505060405180910390fd5b6060600b60008481526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612cd65780601f10612cab57610100808354040283529160200191612cd6565b820191906000526020600020905b815481529060010190602001808311612cb957829003601f168201915b505050505090506000600c8054600181600116156101000203166002900490501415612d055780915050612eb1565b600081511115612dde57600c816040516020018083805460018160011615610100020316600290048015612d705780601f10612d4e576101008083540402835291820191612d70565b820191906000526020600020905b815481529060010190602001808311612d5c575b505082805190602001908083835b60208310612da15780518252602082019150602081019050602083039250612d7e565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052915050612eb1565b600c612de9846146ca565b6040516020018083805460018160011615610100020316600290048015612e475780601f10612e25576101008083540402835291820191612e47565b820191906000526020600020905b815481529060010190602001808311612e33575b505082805190602001908083835b60208310612e785780518252602082019150602081019050602083039250612e55565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529150505b919050565b6000612ed660016000848152602001908152602001600020600001614811565b9050919050565b6000612f1e60405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902033612832565b612f90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f43616c6c6572206973206e6f7420612074656d706c617465206f776e6572000081525060200191505060405180910390fd5b600260009054906101000a900460ff1615613013576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b61301b615ad3565b604051806080016040528089898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505081526020013373ffffffffffffffffffffffffffffffffffffffff168152509050600f8190806001815401808255809150506001900390600052602060002090600402016000909190919091506000820151816000019080519060200190613168929190615b11565b506020820151816001019080519060200190613185929190615b11565b5060408201518160020190805190602001906131a2929190615b11565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505060006132076001600f8054905061446c90919063ffffffff16565b90507f335347d3c0abbe88e13ee17ff9db9ff2aabea3e099f1ffd10807e9c7f9cf82ad818a8a8a8a8a8a6040518088815260200180602001806020018060200184810384528a8a82818152602001925080828437600081840152601f19601f8201169050808301925050508481038352888882818152602001925080828437600081840152601f19601f8201169050808301925050508481038252868682818152602001925080828437600081840152601f19601f8201169050808301925050509a505050505050505050505060405180910390a16001925050509695505050505050565b6000600260009054906101000a900460ff1615613371576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b83600f80549050116133eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f2074656d706c61746520776974682074686174206964000000000000000081525060200191505060405180910390fd5b6000600e600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146134b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f426164676520616c72656164792061637469766174656421000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ebfa62b985336040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561355657600080fd5b505afa15801561356a573d6000803e3d6000fd5b505050506040513d602081101561358057600080fd5b8101908080519060200190929190505050806136ee57506136ed7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c2b40ae4866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561360b57600080fd5b505afa15801561361f573d6000803e3d6000fd5b505050506040513d602081101561363557600080fd5b810190808051906020019092919050505033604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140191505060405160208183030381529060405280519060200120888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506148269092919063ffffffff16565b5b613760576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43616c6c6572206973206e6f7420612072656465656d6572000000000000000081525060200191505060405180910390fd5b836011600061376f600d6148de565b8152602001908152602001600020819055506137a8600160106000878152602001908152602001600020546148ec90919063ffffffff16565b60106000868152602001908152602001600020819055506001600e600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613820338484614974565b613892576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4552433732313a20546f6b656e206e6f74206d696e746564000000000000000081525060200191505060405180910390fd5b7ffcdd666d85b3ffd083437c2d6d3fb35552e00683b0c6e248e30b534990f5a98e33858585604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060405180910390a16001905095945050505050565b6139656001600084815260200190815260200160002060020154613960613e6a565b612832565b6139ba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180615d266030913960400191505060405180910390fd5b6139c48282614166565b5050565b60405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902081565b6000613a106000801b33612832565b613a82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616c6c6572206973206e6f7420616e2061646d696e0000000000000000000081525060200191505060405180910390fd5b613ac160405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083612832565b15613b34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f67757920697320616c726561647920612074656d706c6174657200000000000081525060200191505060405180910390fd5b613b7360405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083611898565b60019050919050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b613c18613e6a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613cd9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615cb06026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000613e45836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6149f5565b905092915050565b6000613e63826005614a6590919063ffffffff16565b9050919050565b600033905090565b816007600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16613ee5836123ca565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000613f3982600001614a7f565b9050919050565b6000613f4b82613e4d565b613fa0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615cfa602c913960400191505060405180910390fd5b6000613fab836123ca565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061401a57508373ffffffffffffffffffffffffffffffffffffffff1661400284611612565b73ffffffffffffffffffffffffffffffffffffffff16145b8061402b575061402a8185613b7c565b5b91505092915050565b60006140a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4552433732313a20746f6b656e207472616e736665722064697361626c65640081525060200191505060405180910390fd5b6140b3838383614a90565b505050565b6140e08160016000858152602001908152602001600020600001613e1d90919063ffffffff16565b15614148576140ed613e6a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600061415b8360000183614cd3565b60001c905092915050565b61418e8160016000858152602001908152602001600020600001614d5690919063ffffffff16565b156141f65761419b613e6a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600260009054906101000a900460ff1661427c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600260006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6142c0613e6a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600061430e826123ca565b905061431c81600084614d86565b614327600083613e72565b6000600b60008481526020019081526020016000208054600181600116156101000203166002900490501461437657600b600083815260200190815260200160002060006143759190615b91565b5b6143c782600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020614d8b90919063ffffffff16565b506143dc826005614da590919063ffffffff16565b5081600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6000806000806144508660000186614dbf565b915091508160001c8160001c8090509350935050509250929050565b60006144ae83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614e58565b905092915050565b80600c90805190602001906144cc929190615b11565b5050565b60006144e3846000018460001b84614f18565b60001c90509392505050565b60006144fd8260000161500e565b9050919050565b600260009054906101000a900460ff1615614587576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586145cb613e6a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600061461d8360000183614cd3565b60001c905092915050565b6000614650836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61501f565b905092915050565b614663848484614034565b61466f84848484615042565b6146c4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180615c7e6032913960400191505060405180910390fd5b50505050565b60606000821415614712576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061480c565b600082905060005b6000821461473c578080600101915050600a828161473457fe5b04915061471a565b60608167ffffffffffffffff8111801561475557600080fd5b506040519080825280601f01601f1916602001820160405280156147885781602001600182028036833780820191505090505b50905060006001830390508593505b6000841461480457600a84816147a957fe5b0660300160f81b828280600190039350815181106147c357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84816147fc57fe5b049350614797565b819450505050505b919050565b600061481f8260000161500e565b9050919050565b60008082905060008090505b85518110156148d057600086828151811061484957fe5b6020026020010151905080831161489057828160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506148c2565b808360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092505b508080600101915050614832565b508381149150509392505050565b600081600001549050919050565b60008082840190508381101561496a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600061498984614984600d6148de565b615287565b6149e0614996600d6148de565b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061547b565b6149ea600d615505565b600190509392505050565b6000614a01838361501f565b614a5a578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050614a5f565b600090505b92915050565b6000614a77836000018360001b61551b565b905092915050565b600081600001805490509050919050565b8273ffffffffffffffffffffffffffffffffffffffff16614ab0826123ca565b73ffffffffffffffffffffffffffffffffffffffff1614614b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180615e876029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180615cd66024913960400191505060405180910390fd5b614bad838383614d86565b614bb8600082613e72565b614c0981600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020614d8b90919063ffffffff16565b50614c5b81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061553e90919063ffffffff16565b50614c72818360056155589092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600081836000018054905011614d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615bff6022913960400191505060405180910390fd5b826000018281548110614d4357fe5b9060005260206000200154905092915050565b6000614d7e836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61558d565b905092915050565b505050565b6000614d9d836000018360001b61558d565b905092915050565b6000614db7836000018360001b615675565b905092915050565b60008082846000018054905011614e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615de16022913960400191505060405180910390fd5b6000846000018481548110614e3257fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b6000838311158290614f05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614eca578082015181840152602081019050614eaf565b50505050905090810190601f168015614ef75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008084600101600085815260200190815260200160002054905060008114158390614fdf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614fa4578082015181840152602081019050614f89565b50505050905090810190601f168015614fd15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50846000016001820381548110614ff257fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b60006150638473ffffffffffffffffffffffffffffffffffffffff1661578e565b615070576001905061527f565b606061520663150b7a0260e01b615085613e6a565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561513557808201518184015260208101905061511a565b50505050905090810190601f1680156151625780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051806060016040528060328152602001615c7e603291398773ffffffffffffffffffffffffffffffffffffffff166157d99092919063ffffffff16565b9050600081806020019051602081101561521f57600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561532a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433732313a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b61533381613e4d565b156153a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000081525060200191505060405180910390fd5b6153b260008383614d86565b61540381600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061553e90919063ffffffff16565b5061541a818360056155589092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61548482613e4d565b6154d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615e2f602c913960400191505060405180910390fd5b80600b60008481526020019081526020016000209080519060200190615500929190615b11565b505050565b6001816000016000828254019250508190555050565b600080836001016000848152602001908152602001600020541415905092915050565b6000615550836000018360001b6149f5565b905092915050565b6000615584846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b6157f1565b90509392505050565b6000808360010160008481526020019081526020016000205490506000811461566957600060018203905060006001866000018054905003905060008660000182815481106155d857fe5b90600052602060002001549050808760000184815481106155f557fe5b906000526020600020018190555060018301876001016000838152602001908152602001600020819055508660000180548061562d57fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061566f565b60009150505b92915050565b6000808360010160008481526020019081526020016000205490506000811461578257600060018203905060006001866000018054905003905060008660000182815481106156c057fe5b90600052602060002090600202019050808760000184815481106156e057fe5b906000526020600020906002020160008201548160000155600182015481600101559050506001830187600101600083600001548152602001908152602001600020819055508660000180548061573357fe5b6001900381819060005260206000209060020201600080820160009055600182016000905550509055866001016000878152602001908152602001600020600090556001945050505050615788565b60009150505b92915050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91508082141580156157d057506000801b8214155b92505050919050565b60606157e884846000856158cd565b90509392505050565b6000808460010160008581526020019081526020016000205490506000811415615898578460000160405180604001604052808681526020018581525090806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010155505084600001805490508560010160008681526020019081526020016000208190555060019150506158c6565b828560000160018303815481106158ab57fe5b90600052602060002090600202016001018190555060009150505b9392505050565b60606158d88561578e565b61594a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b6020831061599a5780518252602082019150602081019050602083039250615977565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146159fc576040519150601f19603f3d011682016040523d82523d6000602084013e615a01565b606091505b50915091508115615a16578092505050615acb565b600081511115615a295780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015615a90578082015181840152602081019050615a75565b50505050905090810190601f168015615abd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b949350505050565b6040518060800160405280606081526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615b5257805160ff1916838001178555615b80565b82800160010185558215615b80579182015b82811115615b7f578251825591602001919060010190615b64565b5b509050615b8d9190615bd9565b5090565b50805460018160011615610100020316600290046000825580601f10615bb75750615bd6565b601f016020900490600052602060002090810190615bd59190615bd9565b5b50565b615bfb91905b80821115615bf7576000816000905550600101615bdf565b5090565b9056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e744261646765466163746f72793a206d75737420686176652070617573657220726f6c6520746f20756e70617573654552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b654552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4261646765466163746f72793a206d75737420686176652070617573657220726f6c6520746f2070617573654552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732314275726e61626c653a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a264697066735822122086d8605f2c485631a0c69d1007cb1bd6441141cac18f0b3a775c203919442dd464736f6c634300060a003368747470733a2f2f6261646765732e6d616b657264616f2e636f6d2f746f6b656e2f", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102835760003560e01c80636352211e1161015c578063a22cb465116100ce578063d4c10e4611610087578063d4c10e4614611176578063d547741f14611266578063e63ab1e9146112b4578063e6c0d714146112d2578063e985e9c51461132e578063f2fde38b146113aa57610284565b8063a22cb46514610ddf578063b5900eea14610e2f578063b88d4fde14610e4d578063c87b56dd14610f52578063ca15c87314610ff9578063ccb4bcb61461103b57610284565b80638456cb59116101205780638456cb5914610c0c5780638da5cb5b14610c165780639010d07c14610c6057806391d1485414610cd857806395d89b4114610d3e578063a217fddf14610dc157610284565b80636352211e14610a9b5780636c0360eb14610b095780636cdd0a1614610b8c57806370a0823114610baa578063715018a614610c0257610284565b806336568abe116101f55780634de46fd0116101b95780634de46fd0146108bc5780634f6ccce7146108fe57806355de28ae1461094057806355f804b3146109865780635c975abb14610a175780635ddb084514610a3957610284565b806336568abe1461076c5780633f4ba83a146107ba57806342842e0e146107c457806342966c68146108325780634ba360ba1461086057610284565b806318160ddd1161024757806318160ddd1461046f57806323b872dd1461048d578063248a9ca3146104fb5780632f2ff15d1461053d5780632f745c591461058b57806331543cf4146105ed57610284565b806301ffc9a71461028957806304523af1146102ee57806306fdde0314610330578063081812fc146103b3578063095ea7b31461042157610284565b5b600080fd5b6102d46004803603602081101561029f57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506113ee565b604051808215151515815260200191505060405180910390f35b61031a6004803603602081101561030457600080fd5b8101908080359060200190929190505050611456565b6040518082815260200191505060405180910390f35b610338611570565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561037857808201518184015260208101905061035d565b50505050905090810190601f1680156103a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103df600480360360208110156103c957600080fd5b8101908080359060200190929190505050611612565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61046d6004803603604081101561043757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116ad565b005b6104776117f1565b6040518082815260200191505060405180910390f35b6104f9600480360360608110156104a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611802565b005b6105276004803603602081101561051157600080fd5b8101908080359060200190929190505050611878565b6040518082815260200191505060405180910390f35b6105896004803603604081101561055357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611898565b005b6105d7600480360360408110156105a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611922565b6040518082815260200191505060405180910390f35b6106196004803603602081101561060357600080fd5b810190808035906020019092919050505061197d565b60405180806020018060200180602001848103845287818151815260200191508051906020019080838360005b83811015610661578082015181840152602081019050610646565b50505050905090810190601f16801561068e5780820380516001836020036101000a031916815260200191505b50848103835286818151815260200191508051906020019080838360005b838110156106c75780820151818401526020810190506106ac565b50505050905090810190601f1680156106f45780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b8381101561072d578082015181840152602081019050610712565b50505050905090810190601f16801561075a5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b6107b86004803603604081101561078257600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d08565b005b6107c2611da1565b005b610830600480360360608110156107da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e3f565b005b61085e6004803603602081101561084857600080fd5b8101908080359060200190929190505050611e5f565b005b6108a26004803603602081101561087657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ed1565b604051808215151515815260200191505060405180910390f35b6108e8600480360360208110156108d257600080fd5b810190808035906020019092919050505061204b565b6040518082815260200191505060405180910390f35b61092a6004803603602081101561091457600080fd5b8101908080359060200190929190505050612166565b6040518082815260200191505060405180910390f35b61096c6004803603602081101561095657600080fd5b8101908080359060200190929190505050612189565b604051808215151515815260200191505060405180910390f35b6109fd6004803603602081101561099c57600080fd5b81019080803590602001906401000000008111156109b957600080fd5b8201836020820111156109cb57600080fd5b803590602001918460018302840111640100000000831117156109ed57600080fd5b909192939192939050505061226c565b604051808215151515815260200191505060405180910390f35b610a1f61238e565b604051808215151515815260200191505060405180910390f35b610a8560048036036040811015610a4f57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123a5565b6040518082815260200191505060405180910390f35b610ac760048036036020811015610ab157600080fd5b81019080803590602001909291905050506123ca565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b11612401565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b51578082015181840152602081019050610b36565b50505050905090810190601f168015610b7e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610b946124a3565b6040518082815260200191505060405180910390f35b610bec60048036036020811015610bc057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124dc565b6040518082815260200191505060405180910390f35b610c0a6125b1565b005b610c14612739565b005b610c1e6127d7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610c9660048036036040811015610c7657600080fd5b810190808035906020019092919080359060200190929190505050612800565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610d2460048036036040811015610cee57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612832565b604051808215151515815260200191505060405180910390f35b610d46612864565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d86578082015181840152602081019050610d6b565b50505050905090810190601f168015610db35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610dc9612906565b6040518082815260200191505060405180910390f35b610e2d60048036036040811015610df557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061290d565b005b610e37612ac5565b6040518082815260200191505060405180910390f35b610f5060048036036080811015610e6357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610eca57600080fd5b820183602082011115610edc57600080fd5b80359060200191846001830284011164010000000083111715610efe57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612b55565b005b610f7e60048036036020811015610f6857600080fd5b8101908080359060200190929190505050612bcd565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610fbe578082015181840152602081019050610fa3565b50505050905090810190601f168015610feb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6110256004803603602081101561100f57600080fd5b8101908080359060200190929190505050612eb6565b6040518082815260200191505060405180910390f35b61115c6004803603606081101561105157600080fd5b810190808035906020019064010000000081111561106e57600080fd5b82018360208201111561108057600080fd5b803590602001918460018302840111640100000000831117156110a257600080fd5b9091929391929390803590602001906401000000008111156110c357600080fd5b8201836020820111156110d557600080fd5b803590602001918460018302840111640100000000831117156110f757600080fd5b90919293919293908035906020019064010000000081111561111857600080fd5b82018360208201111561112a57600080fd5b8035906020019184600183028401116401000000008311171561114c57600080fd5b9091929391929390505050612edd565b604051808215151515815260200191505060405180910390f35b61124c6004803603606081101561118c57600080fd5b81019080803590602001906401000000008111156111a957600080fd5b8201836020820111156111bb57600080fd5b803590602001918460208302840111640100000000831117156111dd57600080fd5b9091929391929390803590602001909291908035906020019064010000000081111561120857600080fd5b82018360208201111561121a57600080fd5b8035906020019184600183028401116401000000008311171561123c57600080fd5b90919293919293905050506132ec565b604051808215151515815260200191505060405180910390f35b6112b26004803603604081101561127c57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061393e565b005b6112bc6139c8565b6040518082815260200191505060405180910390f35b611314600480360360208110156112e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613a01565b604051808215151515815260200191505060405180910390f35b6113906004803603604081101561134457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613b7c565b604051808215151515815260200191505060405180910390f35b6113ec600480360360208110156113c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613c10565b005b600060036000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6000600260009054906101000a900460ff16156114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b81600f8054905011611555576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f2074656d706c61746520776974682074686174206964000000000000000081525060200191505060405180910390fd5b60106000838152602001908152602001600020549050919050565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116085780601f106115dd57610100808354040283529160200191611608565b820191906000526020600020905b8154815290600101906020018083116115eb57829003601f168201915b5050505050905090565b600061161d82613e4d565b611672576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615e03602c913960400191505060405180910390fd5b6007600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006116b8826123ca565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561173f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615edf6021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661175e613e6a565b73ffffffffffffffffffffffffffffffffffffffff16148061178d575061178c81611787613e6a565b613b7c565b5b6117e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180615d566038913960400191505060405180910390fd5b6117ec8383613e72565b505050565b60006117fd6005613f2b565b905090565b61181361180d613e6a565b82613f40565b611868576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180615f006031913960400191505060405180910390fd5b611873838383614034565b505050565b600060016000838152602001908152602001600020600201549050919050565b6118bf60016000848152602001908152602001600020600201546118ba613e6a565b612832565b611914576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180615c21602f913960400191505060405180910390fd5b61191e82826140b8565b5050565b600061197582600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061414c90919063ffffffff16565b905092915050565b6060806060600260009054906101000a900460ff1615611a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b83600f8054905011611a7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f2074656d706c61746520776974682074686174206964000000000000000081525060200191505060405180910390fd5b611a87615ad3565b600f8581548110611a9457fe5b9060005260206000209060040201604051806080016040529081600082018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b465780601f10611b1b57610100808354040283529160200191611b46565b820191906000526020600020905b815481529060010190602001808311611b2957829003601f168201915b50505050508152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611be85780601f10611bbd57610100808354040283529160200191611be8565b820191906000526020600020905b815481529060010190602001808311611bcb57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c8a5780601f10611c5f57610100808354040283529160200191611c8a565b820191906000526020600020905b815481529060010190602001808311611c6d57829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050806000015181602001518260400151935093509350509193909250565b611d10613e6a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611d93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180615f61602f913960400191505060405180910390fd5b611d9d8282614166565b5050565b611de060405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902033612832565b611e35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180615c50602e913960400191505060405180910390fd5b611e3d6141fa565b565b611e5a83838360405180602001604052806000815250612b55565b505050565b611e70611e6a613e6a565b82613f40565b611ec5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180615f316030913960400191505060405180910390fd5b611ece81614303565b50565b6000611ee06000801b33612832565b611f52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616c6c6572206973206e6f7420616e2061646d696e0000000000000000000081525060200191505060405180910390fd5b611f9160405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083612832565b612003576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f677579206973206e6f7420612074656d706c617465720000000000000000000081525060200191505060405180910390fd5b61204260405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e01905060405180910390208361393e565b60019050919050565b6000600260009054906101000a900460ff16156120d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6120d982613e4d565b61214b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4552433732313a204e6f20746f6b656e2077697468207468617420696400000081525060200191505060405180910390fd5b60116000838152602001908152602001600020549050919050565b60008061217d83600561443d90919063ffffffff16565b50905080915050919050565b6000600260009054906101000a900460ff161561220e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b60006122198361204b565b90506122426001601060008481526020019081526020016000205461446c90919063ffffffff16565b601060008381526020019081526020016000208190555061226283611e5f565b6001915050919050565b6000612276613e6a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612337576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61238483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506144b6565b6001905092915050565b6000600260009054906101000a900460ff16905090565b600e602052816000526040600020602052806000526040600020600091509150505481565b60006123fa82604051806060016040528060298152602001615db86029913960056144d09092919063ffffffff16565b9050919050565b6060600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124995780601f1061246e57610100808354040283529160200191612499565b820191906000526020600020905b81548152906001019060200180831161247c57829003601f168201915b5050505050905090565b60405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180615d8e602a913960400191505060405180910390fd5b6125aa600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206144ef565b9050919050565b6125b9613e6a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461267a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61277860405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902033612832565b6127cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615e5b602c913960400191505060405180910390fd5b6127d5614504565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600061282a826001600086815260200190815260200160002060000161460e90919063ffffffff16565b905092915050565b600061285c826001600086815260200190815260200160002060000161462890919063ffffffff16565b905092915050565b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156128fc5780601f106128d1576101008083540402835291602001916128fc565b820191906000526020600020905b8154815290600101906020018083116128df57829003601f168201915b5050505050905090565b6000801b81565b612915613e6a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156129b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600860006129c3613e6a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16612a70613e6a565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b6000600260009054906101000a900460ff1615612b4a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b600f80549050905090565b612b66612b60613e6a565b83613f40565b612bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180615f006031913960400191505060405180910390fd5b612bc784848484614658565b50505050565b6060612bd882613e4d565b612c2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180615eb0602f913960400191505060405180910390fd5b6060600b60008481526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612cd65780601f10612cab57610100808354040283529160200191612cd6565b820191906000526020600020905b815481529060010190602001808311612cb957829003601f168201915b505050505090506000600c8054600181600116156101000203166002900490501415612d055780915050612eb1565b600081511115612dde57600c816040516020018083805460018160011615610100020316600290048015612d705780601f10612d4e576101008083540402835291820191612d70565b820191906000526020600020905b815481529060010190602001808311612d5c575b505082805190602001908083835b60208310612da15780518252602082019150602081019050602083039250612d7e565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052915050612eb1565b600c612de9846146ca565b6040516020018083805460018160011615610100020316600290048015612e475780601f10612e25576101008083540402835291820191612e47565b820191906000526020600020905b815481529060010190602001808311612e33575b505082805190602001908083835b60208310612e785780518252602082019150602081019050602083039250612e55565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529150505b919050565b6000612ed660016000848152602001908152602001600020600001614811565b9050919050565b6000612f1e60405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902033612832565b612f90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f43616c6c6572206973206e6f7420612074656d706c617465206f776e6572000081525060200191505060405180910390fd5b600260009054906101000a900460ff1615613013576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b61301b615ad3565b604051806080016040528089898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505081526020013373ffffffffffffffffffffffffffffffffffffffff168152509050600f8190806001815401808255809150506001900390600052602060002090600402016000909190919091506000820151816000019080519060200190613168929190615b11565b506020820151816001019080519060200190613185929190615b11565b5060408201518160020190805190602001906131a2929190615b11565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505060006132076001600f8054905061446c90919063ffffffff16565b90507f335347d3c0abbe88e13ee17ff9db9ff2aabea3e099f1ffd10807e9c7f9cf82ad818a8a8a8a8a8a6040518088815260200180602001806020018060200184810384528a8a82818152602001925080828437600081840152601f19601f8201169050808301925050508481038352888882818152602001925080828437600081840152601f19601f8201169050808301925050508481038252868682818152602001925080828437600081840152601f19601f8201169050808301925050509a505050505050505050505060405180910390a16001925050509695505050505050565b6000600260009054906101000a900460ff1615613371576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b83600f80549050116133eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f2074656d706c61746520776974682074686174206964000000000000000081525060200191505060405180910390fd5b6000600e600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146134b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f426164676520616c72656164792061637469766174656421000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ebfa62b985336040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561355657600080fd5b505afa15801561356a573d6000803e3d6000fd5b505050506040513d602081101561358057600080fd5b8101908080519060200190929190505050806136ee57506136ed7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c2b40ae4866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561360b57600080fd5b505afa15801561361f573d6000803e3d6000fd5b505050506040513d602081101561363557600080fd5b810190808051906020019092919050505033604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140191505060405160208183030381529060405280519060200120888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506148269092919063ffffffff16565b5b613760576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43616c6c6572206973206e6f7420612072656465656d6572000000000000000081525060200191505060405180910390fd5b836011600061376f600d6148de565b8152602001908152602001600020819055506137a8600160106000878152602001908152602001600020546148ec90919063ffffffff16565b60106000868152602001908152602001600020819055506001600e600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613820338484614974565b613892576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4552433732313a20546f6b656e206e6f74206d696e746564000000000000000081525060200191505060405180910390fd5b7ffcdd666d85b3ffd083437c2d6d3fb35552e00683b0c6e248e30b534990f5a98e33858585604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060405180910390a16001905095945050505050565b6139656001600084815260200190815260200160002060020154613960613e6a565b612832565b6139ba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180615d266030913960400191505060405180910390fd5b6139c48282614166565b5050565b60405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902081565b6000613a106000801b33612832565b613a82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616c6c6572206973206e6f7420616e2061646d696e0000000000000000000081525060200191505060405180910390fd5b613ac160405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083612832565b15613b34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f67757920697320616c726561647920612074656d706c6174657200000000000081525060200191505060405180910390fd5b613b7360405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083611898565b60019050919050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b613c18613e6a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613cd9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615cb06026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000613e45836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6149f5565b905092915050565b6000613e63826005614a6590919063ffffffff16565b9050919050565b600033905090565b816007600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16613ee5836123ca565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000613f3982600001614a7f565b9050919050565b6000613f4b82613e4d565b613fa0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615cfa602c913960400191505060405180910390fd5b6000613fab836123ca565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061401a57508373ffffffffffffffffffffffffffffffffffffffff1661400284611612565b73ffffffffffffffffffffffffffffffffffffffff16145b8061402b575061402a8185613b7c565b5b91505092915050565b60006140a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4552433732313a20746f6b656e207472616e736665722064697361626c65640081525060200191505060405180910390fd5b6140b3838383614a90565b505050565b6140e08160016000858152602001908152602001600020600001613e1d90919063ffffffff16565b15614148576140ed613e6a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600061415b8360000183614cd3565b60001c905092915050565b61418e8160016000858152602001908152602001600020600001614d5690919063ffffffff16565b156141f65761419b613e6a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600260009054906101000a900460ff1661427c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600260006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6142c0613e6a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600061430e826123ca565b905061431c81600084614d86565b614327600083613e72565b6000600b60008481526020019081526020016000208054600181600116156101000203166002900490501461437657600b600083815260200190815260200160002060006143759190615b91565b5b6143c782600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020614d8b90919063ffffffff16565b506143dc826005614da590919063ffffffff16565b5081600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6000806000806144508660000186614dbf565b915091508160001c8160001c8090509350935050509250929050565b60006144ae83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614e58565b905092915050565b80600c90805190602001906144cc929190615b11565b5050565b60006144e3846000018460001b84614f18565b60001c90509392505050565b60006144fd8260000161500e565b9050919050565b600260009054906101000a900460ff1615614587576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586145cb613e6a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600061461d8360000183614cd3565b60001c905092915050565b6000614650836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61501f565b905092915050565b614663848484614034565b61466f84848484615042565b6146c4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180615c7e6032913960400191505060405180910390fd5b50505050565b60606000821415614712576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061480c565b600082905060005b6000821461473c578080600101915050600a828161473457fe5b04915061471a565b60608167ffffffffffffffff8111801561475557600080fd5b506040519080825280601f01601f1916602001820160405280156147885781602001600182028036833780820191505090505b50905060006001830390508593505b6000841461480457600a84816147a957fe5b0660300160f81b828280600190039350815181106147c357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84816147fc57fe5b049350614797565b819450505050505b919050565b600061481f8260000161500e565b9050919050565b60008082905060008090505b85518110156148d057600086828151811061484957fe5b6020026020010151905080831161489057828160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506148c2565b808360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092505b508080600101915050614832565b508381149150509392505050565b600081600001549050919050565b60008082840190508381101561496a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600061498984614984600d6148de565b615287565b6149e0614996600d6148de565b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061547b565b6149ea600d615505565b600190509392505050565b6000614a01838361501f565b614a5a578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050614a5f565b600090505b92915050565b6000614a77836000018360001b61551b565b905092915050565b600081600001805490509050919050565b8273ffffffffffffffffffffffffffffffffffffffff16614ab0826123ca565b73ffffffffffffffffffffffffffffffffffffffff1614614b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180615e876029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180615cd66024913960400191505060405180910390fd5b614bad838383614d86565b614bb8600082613e72565b614c0981600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020614d8b90919063ffffffff16565b50614c5b81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061553e90919063ffffffff16565b50614c72818360056155589092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600081836000018054905011614d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615bff6022913960400191505060405180910390fd5b826000018281548110614d4357fe5b9060005260206000200154905092915050565b6000614d7e836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61558d565b905092915050565b505050565b6000614d9d836000018360001b61558d565b905092915050565b6000614db7836000018360001b615675565b905092915050565b60008082846000018054905011614e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615de16022913960400191505060405180910390fd5b6000846000018481548110614e3257fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b6000838311158290614f05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614eca578082015181840152602081019050614eaf565b50505050905090810190601f168015614ef75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008084600101600085815260200190815260200160002054905060008114158390614fdf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614fa4578082015181840152602081019050614f89565b50505050905090810190601f168015614fd15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50846000016001820381548110614ff257fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b60006150638473ffffffffffffffffffffffffffffffffffffffff1661578e565b615070576001905061527f565b606061520663150b7a0260e01b615085613e6a565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561513557808201518184015260208101905061511a565b50505050905090810190601f1680156151625780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051806060016040528060328152602001615c7e603291398773ffffffffffffffffffffffffffffffffffffffff166157d99092919063ffffffff16565b9050600081806020019051602081101561521f57600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561532a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433732313a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b61533381613e4d565b156153a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000081525060200191505060405180910390fd5b6153b260008383614d86565b61540381600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061553e90919063ffffffff16565b5061541a818360056155589092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61548482613e4d565b6154d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615e2f602c913960400191505060405180910390fd5b80600b60008481526020019081526020016000209080519060200190615500929190615b11565b505050565b6001816000016000828254019250508190555050565b600080836001016000848152602001908152602001600020541415905092915050565b6000615550836000018360001b6149f5565b905092915050565b6000615584846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b6157f1565b90509392505050565b6000808360010160008481526020019081526020016000205490506000811461566957600060018203905060006001866000018054905003905060008660000182815481106155d857fe5b90600052602060002001549050808760000184815481106155f557fe5b906000526020600020018190555060018301876001016000838152602001908152602001600020819055508660000180548061562d57fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061566f565b60009150505b92915050565b6000808360010160008481526020019081526020016000205490506000811461578257600060018203905060006001866000018054905003905060008660000182815481106156c057fe5b90600052602060002090600202019050808760000184815481106156e057fe5b906000526020600020906002020160008201548160000155600182015481600101559050506001830187600101600083600001548152602001908152602001600020819055508660000180548061573357fe5b6001900381819060005260206000209060020201600080820160009055600182016000905550509055866001016000878152602001908152602001600020600090556001945050505050615788565b60009150505b92915050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91508082141580156157d057506000801b8214155b92505050919050565b60606157e884846000856158cd565b90509392505050565b6000808460010160008581526020019081526020016000205490506000811415615898578460000160405180604001604052808681526020018581525090806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010155505084600001805490508560010160008681526020019081526020016000208190555060019150506158c6565b828560000160018303815481106158ab57fe5b90600052602060002090600202016001018190555060009150505b9392505050565b60606158d88561578e565b61594a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b6020831061599a5780518252602082019150602081019050602083039250615977565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146159fc576040519150601f19603f3d011682016040523d82523d6000602084013e615a01565b606091505b50915091508115615a16578092505050615acb565b600081511115615a295780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015615a90578082015181840152602081019050615a75565b50505050905090810190601f168015615abd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b949350505050565b6040518060800160405280606081526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615b5257805160ff1916838001178555615b80565b82800160010185558215615b80579182015b82811115615b7f578251825591602001919060010190615b64565b5b509050615b8d9190615bd9565b5090565b50805460018160011615610100020316600290046000825580601f10615bb75750615bd6565b601f016020900490600052602060002090810190615bd59190615bd9565b5b50565b615bfb91905b80821115615bf7576000816000905550600101615bdf565b5090565b9056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e744261646765466163746f72793a206d75737420686176652070617573657220726f6c6520746f20756e70617573654552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b654552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4261646765466163746f72793a206d75737420686176652070617573657220726f6c6520746f2070617573654552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732314275726e61626c653a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a264697066735822122086d8605f2c485631a0c69d1007cb1bd6441141cac18f0b3a775c203919442dd464736f6c634300060a0033", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"maker_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"redeemer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"tokenURI\",\"type\":\"string\"}],\"name\":\"BadgeActivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"}],\"name\":\"NewTemplate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAUSER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEMPLATER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"tokenURI\",\"type\":\"string\"}],\"name\":\"activateBadge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"addTemplater\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burnBadge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"}],\"name\":\"createTemplate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getBadgeTemplate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"}],\"name\":\"getBadgeTemplateQuantity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"}],\"name\":\"getTemplate\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTemplatesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"redeemed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"removeTemplater\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"}],\"name\":\"setBaseURI\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"NewTemplate(uint256,string,string,string)\":{\"details\":\"Events\"}},\"kind\":\"dev\",\"methods\":{\"activateBadge(bytes32[],uint256,string)\":{\"details\":\"Verify if the caller is a redeemer\",\"params\":{\"proof\":\"Merkle Proof\",\"templateId\":\"Template Id\",\"tokenURI\":\"Token URI\"},\"returns\":{\"_0\":\"True If the new Badge is Activated\"}},\"addTemplater(address)\":{\"details\":\"Access restricted only for Admins\",\"params\":{\"guy\":\"Address of the new Templater\"},\"returns\":{\"_0\":\"True if the guy address is added as Templater\"}},\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"baseURI()\":{\"details\":\"Returns the base URI set via {_setBaseURI}. This will be automatically added as a prefix in {tokenURI} to each token's URI, or to the token ID if no specific URI is set for that token ID.\"},\"burn(uint256)\":{\"details\":\"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator.\"},\"burnBadge(uint256)\":{\"details\":\"burn() Check if the caller is approved or owner of the Badge\",\"params\":{\"tokenId\":\"Token Id of the Badge to burn\"},\"returns\":{\"_0\":\"True if the Badge has been burned\"}},\"createTemplate(string,string,string)\":{\"details\":\"Access restricted to only Templaters\",\"params\":{\"description\":\"A description of the new template\",\"image\":\"A filename of the new template\",\"name\":\"The name of the new template\"},\"returns\":{\"_0\":\"True If the new Template is Created\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"getBadgeTemplate(uint256)\":{\"details\":\"Check if the tokenId exists\",\"params\":{\"tokenId\":\"Token Id of the Badge\"},\"returns\":{\"_0\":\"Template Id associated with the tokenId\"}},\"getBadgeTemplateQuantity(uint256)\":{\"details\":\"Check if the template Id exists\",\"params\":{\"templateId\":\"Template Id\"},\"returns\":{\"_0\":\"Quantity of Badges associated with templateId\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"getTemplate(uint256)\":{\"details\":\"Check if templateId exists\",\"params\":{\"templateId\":\"Template Id of the template to return\"},\"returns\":{\"name\":\"description image Of the specified templateId\"}},\"getTemplatesCount()\":{\"details\":\"Return lenght of template array\",\"returns\":{\"count\":\"The current number of templates\"}},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"pause()\":{\"details\":\"the caller must have the 'PAUSER_ROLE'\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"removeTemplater(address)\":{\"details\":\"Access restricted only for Admins\",\"params\":{\"guy\":\"Address of the Templater\"},\"returns\":{\"_0\":\"True if the guy address is removed as Templater\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setBaseURI(string)\":{\"details\":\"Update the baseURI specified in the constructor\",\"params\":{\"baseURI\":\"New baseURI\"},\"returns\":{\"_0\":\"True if the new baseURI is set\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"details\":\"the caller must have the 'PAUSER_ROLE'\"}},\"stateVariables\":{\"_templateQuantities\":{\"details\":\"Supplies of each badge template\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"activateBadge(bytes32[],uint256,string)\":{\"notice\":\"Activate Badge by redeemers\"},\"addTemplater(address)\":{\"notice\":\"Add a new Templater\"},\"burnBadge(uint256)\":{\"notice\":\"Burn Badge\"},\"createTemplate(string,string,string)\":{\"notice\":\"Create a new template\"},\"getBadgeTemplate(uint256)\":{\"notice\":\"Getter function for templateId associated with the tokenId\"},\"getBadgeTemplateQuantity(uint256)\":{\"notice\":\"Getter function for number of badges associated with templateId\"},\"getTemplate(uint256)\":{\"notice\":\"Getter function for templates\"},\"getTemplatesCount()\":{\"notice\":\"Getter function for templates count\"},\"pause()\":{\"notice\":\"Pause all the functions\"},\"removeTemplater(address)\":{\"notice\":\"Remove a Templater\"},\"setBaseURI(string)\":{\"notice\":\"Set the baseURI\"},\"unpause()\":{\"notice\":\"Unpause all the functions\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/sencha/maker-badges/contracts/BadgeFactory.sol\":\"BadgeFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/sencha/maker-badges/contracts/BadgeFactory.sol\":{\"keccak256\":\"0x341ad1a193f93e27815d76b2ef69e87b537a237e773c22f628a95e24306ae06c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://286229c79088a1113e4d0547a8be8882e18dd23b8f4e7adb398ab3e6fff695ca\",\"dweb:/ipfs/QmNxGtXaYEk9LQr6JaTD82hZshaHhpRfcRhCxjFFZDCZJ5\"]},\"/home/sencha/maker-badges/contracts/BadgeRoles.sol\":{\"keccak256\":\"0x30fb9b91a1a0ab7ccbfac78cb481e3b316f804581cb73b973bc5eb5f4b1e1a86\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5fb0a8b8b77684e4db3b4ae21b9c985fa2c38439f6e32b596fa40a2a2ad634e4\",\"dweb:/ipfs/QmZabUkMbDRunwLQGg7eWCW7wXM98xsERpakYsax718KQp\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x92f7900d382761c7faefeaced81c6b4f1aae909ed0551803bfe8f27101956360\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://407c0864143968542e5cf5aa7556916d2cf292b201e3dadb65662e9a3aa24187\",\"dweb:/ipfs/QmSnXzYAUaGLGr7uofRbgQraTJvatbjQLBPhyYiMd18oUJ\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"@openzeppelin/contracts/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x96a652802a06645a5908f74f104ec95ff0897e261e7028ee319bafc55582b597\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5afea8071316055c01a3d144da77523b8ae7ec8295e99559000cb07b23b98d30\",\"dweb:/ipfs/QmX14dHGgyErJb3R7wSNBSgxLdyX6EAVwJsZ6yK1xyG1Mo\"]},\"@openzeppelin/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0xb046d18f9d09683ca1c0ed6d80c61da8a8a7d9b30bad70a17b898538683eff74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4728713afa6ae36cc9e92c7107c796a313add3ec20f813be2cde76c814486b2a\",\"dweb:/ipfs/QmUJBTXvYaGDF5PVnd5pUvYerc9DRXvqANDzgCzAp3FkkA\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xfa152b6e88a1dc50780e8f1580426dc23ad2e1e2c2f086a088adf206a202f453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5127b264994adab88fae419b1c493efc5acd07134c19ee5c0397e50018291ebf\",\"dweb:/ipfs/QmWwJZVhvdmvUCdimbb6R2Jiu59zjPqm6XTMchM6LaEHAp\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x1071a23188ba7f5bb16f51b0b01a67fd41fe56f862d8f83985788cf46f3b91bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c7082ca99b93f2e541cafaad00ed32675adf0752eab78eccabcf91dec9fd5d73\",\"dweb:/ipfs/QmdqooMmYBQVi7p6subDFM4e1944AuLjZUpHMjGtae7Lgd\"]},\"@openzeppelin/contracts/token/ERC721/ERC721Burnable.sol\":{\"keccak256\":\"0x5181bc84ec1b054bffda75619dd01f2f760d101da24bdba6ca786f6966a35695\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15323e3edc0407ab3859fc4aeca39d12d5e2e21c9ee36cb87a2d4c128ff8ab00\",\"dweb:/ipfs/QmRz9vQa4Xx8X8V38oABZ2H4ALaki39ueyaSaytw5SFj2M\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x227bafd3e165b13f5d98c42a44376e48d41f4a265db8803f2707faaeae9659aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9aa7959a30871669ce46172cd117b084b607d602d9ce695ce79005582b0b69b\",\"dweb:/ipfs/QmXZUWeLXmArQinHL4RnacJLT22GvCExqREYM6pHLX7CX9\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\":{\"keccak256\":\"0x3636662804cd8f474536b2875a9038a4c3fb91879f1bbff48af5c3f140fcd2f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9fab8521263fa581544000cb57335a3f2e6bcdfbb5579d3ceaa5acf741c67c4f\",\"dweb:/ipfs/QmZfXnMom7JSNtfyie5yGPN1SUC4SmHbz4ScVBH88URmA7\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0xe7f984cedc00a138dc27f263c73c32ba9a4b2fd23b6c34ac46f46c074b943538\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f4acda12f076fe7584921241ddbb5b460ca7cad6cb8a42252ac7f2a9f539127\",\"dweb:/ipfs/QmQmfhkEv9GrhdWe67QtXnU19AMuoEmy31QnHPkucdYLjZ\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x321ee37ef4925020aa818a03ec7fe48e057561f65ab009a84f6c20c86026ade7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01f9d74a17a56024984251b97e428e24c9d3abffbae5bd290f0ec263c82e9694\",\"dweb:/ipfs/QmRryCuuXu2ukrDmatB8TqdEhPLiK6NBRt41RiPUaX1qKy\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0x2d68b8e6425249cd05cc0a66ea50cb5b8d10cbdac59c6de834e1002232813faf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3ce6b6ac17c67bba01e9c8c778f82f68fd4823bd083359cdd03040b70eeeba3\",\"dweb:/ipfs/QmX4t1jWwKaAkacvmQxEG5rBtLXg3EHw6pRjKhMZR8iw3n\"]},\"@openzeppelin/contracts/utils/EnumerableMap.sol\":{\"keccak256\":\"0x244e4b74b17716120cf28e58636f11c699b8c0c94628bd952a95cee038d7e32b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://198d566157120c526bd6b5086b32cae85a11389b8a538f533ba9f9447915da0e\",\"dweb:/ipfs/QmeE6d8KWERx7f1FVS5tMnitNJxBm2yWXRSEUBF7R6voLh\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c\",\"dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x79484115dbfa737054f73e041009a02eeb434dd81be5d684bf4255ad3b5ab558\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12c119699463450c2544f5b9d8709b5e9e9164c62948a79c3ec53423a051d969\",\"dweb:/ipfs/QmPJduzSAaekq447QeFqAp3E7dc8CnNk5ajofckJ4ahA7Q\"]}},\"version\":1}", + "bytecode": "0x60a06040523480156200001157600080fd5b50604051620066ea380380620066ea833981810160405260208110156200003757600080fd5b81019080805190602001909291905050506040518060400160405280600b81526020017f4d616b65724261646765730000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4d414b45520000000000000000000000000000000000000000000000000000008152506000620000c66200034b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000600260006101000a81548160ff021916908315150217905550620001a36000801b620001976200035360201b60201c565b6200037c60201b60201c565b620001f960405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e0190506040518091039020620001ed6200035360201b60201c565b6200037c60201b60201c565b6200024f60405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b0190506040518091039020620002436200035360201b60201c565b6200037c60201b60201c565b620002676301ffc9a760e01b6200039260201b60201c565b81600990805190602001906200027f92919062000631565b5080600a90805190602001906200029892919062000631565b50620002b16380ac58cd60e01b6200039260201b60201c565b620002c9635b5e139f60e01b6200039260201b60201c565b620002e163780e9d6360e01b6200039260201b60201c565b50506200030d604051806060016040528060228152602001620066c8602291396200049c60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505050620006e0565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200038e8282620004b860201b60201c565b5050565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156200042f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b600160036000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b80600c9080519060200190620004b492919062000631565b5050565b620004e781600160008581526020019081526020016000206000016200055c60201b62003e1d1790919060201c565b156200055857620004fd6200034b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006200058c836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6200059460201b60201c565b905092915050565b6000620005a883836200060e60201b60201c565b6200060357826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905062000608565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200067457805160ff1916838001178555620006a5565b82800160010185558215620006a5579182015b82811115620006a457825182559160200191906001019062000687565b5b509050620006b49190620006b8565b5090565b620006dd91905b80821115620006d9576000816000905550600101620006bf565b5090565b90565b60805160601c615fc562000703600039806134b3528061359c5250615fc56000f3fe608060405234801561001057600080fd5b50600436106102835760003560e01c80636352211e1161015c578063a22cb465116100ce578063d4c10e4611610087578063d4c10e4614611176578063d547741f14611266578063e63ab1e9146112b4578063e6c0d714146112d2578063e985e9c51461132e578063f2fde38b146113aa57610284565b8063a22cb46514610ddf578063b5900eea14610e2f578063b88d4fde14610e4d578063c87b56dd14610f52578063ca15c87314610ff9578063ccb4bcb61461103b57610284565b80638456cb59116101205780638456cb5914610c0c5780638da5cb5b14610c165780639010d07c14610c6057806391d1485414610cd857806395d89b4114610d3e578063a217fddf14610dc157610284565b80636352211e14610a9b5780636c0360eb14610b095780636cdd0a1614610b8c57806370a0823114610baa578063715018a614610c0257610284565b806336568abe116101f55780634de46fd0116101b95780634de46fd0146108bc5780634f6ccce7146108fe57806355de28ae1461094057806355f804b3146109865780635c975abb14610a175780635ddb084514610a3957610284565b806336568abe1461076c5780633f4ba83a146107ba57806342842e0e146107c457806342966c68146108325780634ba360ba1461086057610284565b806318160ddd1161024757806318160ddd1461046f57806323b872dd1461048d578063248a9ca3146104fb5780632f2ff15d1461053d5780632f745c591461058b57806331543cf4146105ed57610284565b806301ffc9a71461028957806304523af1146102ee57806306fdde0314610330578063081812fc146103b3578063095ea7b31461042157610284565b5b600080fd5b6102d46004803603602081101561029f57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506113ee565b604051808215151515815260200191505060405180910390f35b61031a6004803603602081101561030457600080fd5b8101908080359060200190929190505050611456565b6040518082815260200191505060405180910390f35b610338611570565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561037857808201518184015260208101905061035d565b50505050905090810190601f1680156103a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103df600480360360208110156103c957600080fd5b8101908080359060200190929190505050611612565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61046d6004803603604081101561043757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116ad565b005b6104776117f1565b6040518082815260200191505060405180910390f35b6104f9600480360360608110156104a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611802565b005b6105276004803603602081101561051157600080fd5b8101908080359060200190929190505050611878565b6040518082815260200191505060405180910390f35b6105896004803603604081101561055357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611898565b005b6105d7600480360360408110156105a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611922565b6040518082815260200191505060405180910390f35b6106196004803603602081101561060357600080fd5b810190808035906020019092919050505061197d565b60405180806020018060200180602001848103845287818151815260200191508051906020019080838360005b83811015610661578082015181840152602081019050610646565b50505050905090810190601f16801561068e5780820380516001836020036101000a031916815260200191505b50848103835286818151815260200191508051906020019080838360005b838110156106c75780820151818401526020810190506106ac565b50505050905090810190601f1680156106f45780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b8381101561072d578082015181840152602081019050610712565b50505050905090810190601f16801561075a5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b6107b86004803603604081101561078257600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d08565b005b6107c2611da1565b005b610830600480360360608110156107da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e3f565b005b61085e6004803603602081101561084857600080fd5b8101908080359060200190929190505050611e5f565b005b6108a26004803603602081101561087657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ed1565b604051808215151515815260200191505060405180910390f35b6108e8600480360360208110156108d257600080fd5b810190808035906020019092919050505061204b565b6040518082815260200191505060405180910390f35b61092a6004803603602081101561091457600080fd5b8101908080359060200190929190505050612166565b6040518082815260200191505060405180910390f35b61096c6004803603602081101561095657600080fd5b8101908080359060200190929190505050612189565b604051808215151515815260200191505060405180910390f35b6109fd6004803603602081101561099c57600080fd5b81019080803590602001906401000000008111156109b957600080fd5b8201836020820111156109cb57600080fd5b803590602001918460018302840111640100000000831117156109ed57600080fd5b909192939192939050505061226c565b604051808215151515815260200191505060405180910390f35b610a1f61238e565b604051808215151515815260200191505060405180910390f35b610a8560048036036040811015610a4f57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123a5565b6040518082815260200191505060405180910390f35b610ac760048036036020811015610ab157600080fd5b81019080803590602001909291905050506123ca565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b11612401565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b51578082015181840152602081019050610b36565b50505050905090810190601f168015610b7e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610b946124a3565b6040518082815260200191505060405180910390f35b610bec60048036036020811015610bc057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124dc565b6040518082815260200191505060405180910390f35b610c0a6125b1565b005b610c14612739565b005b610c1e6127d7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610c9660048036036040811015610c7657600080fd5b810190808035906020019092919080359060200190929190505050612800565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610d2460048036036040811015610cee57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612832565b604051808215151515815260200191505060405180910390f35b610d46612864565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d86578082015181840152602081019050610d6b565b50505050905090810190601f168015610db35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610dc9612906565b6040518082815260200191505060405180910390f35b610e2d60048036036040811015610df557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061290d565b005b610e37612ac5565b6040518082815260200191505060405180910390f35b610f5060048036036080811015610e6357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610eca57600080fd5b820183602082011115610edc57600080fd5b80359060200191846001830284011164010000000083111715610efe57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612b55565b005b610f7e60048036036020811015610f6857600080fd5b8101908080359060200190929190505050612bcd565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610fbe578082015181840152602081019050610fa3565b50505050905090810190601f168015610feb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6110256004803603602081101561100f57600080fd5b8101908080359060200190929190505050612eb6565b6040518082815260200191505060405180910390f35b61115c6004803603606081101561105157600080fd5b810190808035906020019064010000000081111561106e57600080fd5b82018360208201111561108057600080fd5b803590602001918460018302840111640100000000831117156110a257600080fd5b9091929391929390803590602001906401000000008111156110c357600080fd5b8201836020820111156110d557600080fd5b803590602001918460018302840111640100000000831117156110f757600080fd5b90919293919293908035906020019064010000000081111561111857600080fd5b82018360208201111561112a57600080fd5b8035906020019184600183028401116401000000008311171561114c57600080fd5b9091929391929390505050612edd565b604051808215151515815260200191505060405180910390f35b61124c6004803603606081101561118c57600080fd5b81019080803590602001906401000000008111156111a957600080fd5b8201836020820111156111bb57600080fd5b803590602001918460208302840111640100000000831117156111dd57600080fd5b9091929391929390803590602001909291908035906020019064010000000081111561120857600080fd5b82018360208201111561121a57600080fd5b8035906020019184600183028401116401000000008311171561123c57600080fd5b90919293919293905050506132ec565b604051808215151515815260200191505060405180910390f35b6112b26004803603604081101561127c57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061393e565b005b6112bc6139c8565b6040518082815260200191505060405180910390f35b611314600480360360208110156112e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613a01565b604051808215151515815260200191505060405180910390f35b6113906004803603604081101561134457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613b7c565b604051808215151515815260200191505060405180910390f35b6113ec600480360360208110156113c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613c10565b005b600060036000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6000600260009054906101000a900460ff16156114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b81600f8054905011611555576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f2074656d706c61746520776974682074686174206964000000000000000081525060200191505060405180910390fd5b60106000838152602001908152602001600020549050919050565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116085780601f106115dd57610100808354040283529160200191611608565b820191906000526020600020905b8154815290600101906020018083116115eb57829003601f168201915b5050505050905090565b600061161d82613e4d565b611672576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615e03602c913960400191505060405180910390fd5b6007600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006116b8826123ca565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561173f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615edf6021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661175e613e6a565b73ffffffffffffffffffffffffffffffffffffffff16148061178d575061178c81611787613e6a565b613b7c565b5b6117e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180615d566038913960400191505060405180910390fd5b6117ec8383613e72565b505050565b60006117fd6005613f2b565b905090565b61181361180d613e6a565b82613f40565b611868576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180615f006031913960400191505060405180910390fd5b611873838383614034565b505050565b600060016000838152602001908152602001600020600201549050919050565b6118bf60016000848152602001908152602001600020600201546118ba613e6a565b612832565b611914576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180615c21602f913960400191505060405180910390fd5b61191e82826140b8565b5050565b600061197582600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061414c90919063ffffffff16565b905092915050565b6060806060600260009054906101000a900460ff1615611a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b83600f8054905011611a7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f2074656d706c61746520776974682074686174206964000000000000000081525060200191505060405180910390fd5b611a87615ad3565b600f8581548110611a9457fe5b9060005260206000209060040201604051806080016040529081600082018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b465780601f10611b1b57610100808354040283529160200191611b46565b820191906000526020600020905b815481529060010190602001808311611b2957829003601f168201915b50505050508152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611be85780601f10611bbd57610100808354040283529160200191611be8565b820191906000526020600020905b815481529060010190602001808311611bcb57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c8a5780601f10611c5f57610100808354040283529160200191611c8a565b820191906000526020600020905b815481529060010190602001808311611c6d57829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050806000015181602001518260400151935093509350509193909250565b611d10613e6a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611d93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180615f61602f913960400191505060405180910390fd5b611d9d8282614166565b5050565b611de060405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902033612832565b611e35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180615c50602e913960400191505060405180910390fd5b611e3d6141fa565b565b611e5a83838360405180602001604052806000815250612b55565b505050565b611e70611e6a613e6a565b82613f40565b611ec5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180615f316030913960400191505060405180910390fd5b611ece81614303565b50565b6000611ee06000801b33612832565b611f52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616c6c6572206973206e6f7420616e2061646d696e0000000000000000000081525060200191505060405180910390fd5b611f9160405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083612832565b612003576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f677579206973206e6f7420612074656d706c617465720000000000000000000081525060200191505060405180910390fd5b61204260405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e01905060405180910390208361393e565b60019050919050565b6000600260009054906101000a900460ff16156120d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6120d982613e4d565b61214b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4552433732313a204e6f20746f6b656e2077697468207468617420696400000081525060200191505060405180910390fd5b60116000838152602001908152602001600020549050919050565b60008061217d83600561443d90919063ffffffff16565b50905080915050919050565b6000600260009054906101000a900460ff161561220e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b60006122198361204b565b90506122426001601060008481526020019081526020016000205461446c90919063ffffffff16565b601060008381526020019081526020016000208190555061226283611e5f565b6001915050919050565b6000612276613e6a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612337576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61238483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506144b6565b6001905092915050565b6000600260009054906101000a900460ff16905090565b600e602052816000526040600020602052806000526040600020600091509150505481565b60006123fa82604051806060016040528060298152602001615db86029913960056144d09092919063ffffffff16565b9050919050565b6060600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124995780601f1061246e57610100808354040283529160200191612499565b820191906000526020600020905b81548152906001019060200180831161247c57829003601f168201915b5050505050905090565b60405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180615d8e602a913960400191505060405180910390fd5b6125aa600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206144ef565b9050919050565b6125b9613e6a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461267a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61277860405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902033612832565b6127cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615e5b602c913960400191505060405180910390fd5b6127d5614504565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600061282a826001600086815260200190815260200160002060000161460e90919063ffffffff16565b905092915050565b600061285c826001600086815260200190815260200160002060000161462890919063ffffffff16565b905092915050565b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156128fc5780601f106128d1576101008083540402835291602001916128fc565b820191906000526020600020905b8154815290600101906020018083116128df57829003601f168201915b5050505050905090565b6000801b81565b612915613e6a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156129b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600860006129c3613e6a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16612a70613e6a565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b6000600260009054906101000a900460ff1615612b4a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b600f80549050905090565b612b66612b60613e6a565b83613f40565b612bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180615f006031913960400191505060405180910390fd5b612bc784848484614658565b50505050565b6060612bd882613e4d565b612c2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180615eb0602f913960400191505060405180910390fd5b6060600b60008481526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612cd65780601f10612cab57610100808354040283529160200191612cd6565b820191906000526020600020905b815481529060010190602001808311612cb957829003601f168201915b505050505090506000600c8054600181600116156101000203166002900490501415612d055780915050612eb1565b600081511115612dde57600c816040516020018083805460018160011615610100020316600290048015612d705780601f10612d4e576101008083540402835291820191612d70565b820191906000526020600020905b815481529060010190602001808311612d5c575b505082805190602001908083835b60208310612da15780518252602082019150602081019050602083039250612d7e565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052915050612eb1565b600c612de9846146ca565b6040516020018083805460018160011615610100020316600290048015612e475780601f10612e25576101008083540402835291820191612e47565b820191906000526020600020905b815481529060010190602001808311612e33575b505082805190602001908083835b60208310612e785780518252602082019150602081019050602083039250612e55565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529150505b919050565b6000612ed660016000848152602001908152602001600020600001614811565b9050919050565b6000612f1e60405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902033612832565b612f90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f43616c6c6572206973206e6f7420612074656d706c617465206f776e6572000081525060200191505060405180910390fd5b600260009054906101000a900460ff1615613013576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b61301b615ad3565b604051806080016040528089898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505081526020013373ffffffffffffffffffffffffffffffffffffffff168152509050600f8190806001815401808255809150506001900390600052602060002090600402016000909190919091506000820151816000019080519060200190613168929190615b11565b506020820151816001019080519060200190613185929190615b11565b5060408201518160020190805190602001906131a2929190615b11565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505060006132076001600f8054905061446c90919063ffffffff16565b90507f335347d3c0abbe88e13ee17ff9db9ff2aabea3e099f1ffd10807e9c7f9cf82ad818a8a8a8a8a8a6040518088815260200180602001806020018060200184810384528a8a82818152602001925080828437600081840152601f19601f8201169050808301925050508481038352888882818152602001925080828437600081840152601f19601f8201169050808301925050508481038252868682818152602001925080828437600081840152601f19601f8201169050808301925050509a505050505050505050505060405180910390a16001925050509695505050505050565b6000600260009054906101000a900460ff1615613371576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b83600f80549050116133eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f2074656d706c61746520776974682074686174206964000000000000000081525060200191505060405180910390fd5b6000600e600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146134b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f426164676520616c72656164792061637469766174656421000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ebfa62b985336040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561355657600080fd5b505afa15801561356a573d6000803e3d6000fd5b505050506040513d602081101561358057600080fd5b8101908080519060200190929190505050806136ee57506136ed7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c2b40ae4866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561360b57600080fd5b505afa15801561361f573d6000803e3d6000fd5b505050506040513d602081101561363557600080fd5b810190808051906020019092919050505033604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140191505060405160208183030381529060405280519060200120888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506148269092919063ffffffff16565b5b613760576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43616c6c6572206973206e6f7420612072656465656d6572000000000000000081525060200191505060405180910390fd5b836011600061376f600d6148de565b8152602001908152602001600020819055506137a8600160106000878152602001908152602001600020546148ec90919063ffffffff16565b60106000868152602001908152602001600020819055506001600e600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613820338484614974565b613892576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4552433732313a20546f6b656e206e6f74206d696e746564000000000000000081525060200191505060405180910390fd5b7ffcdd666d85b3ffd083437c2d6d3fb35552e00683b0c6e248e30b534990f5a98e33858585604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060405180910390a16001905095945050505050565b6139656001600084815260200190815260200160002060020154613960613e6a565b612832565b6139ba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180615d266030913960400191505060405180910390fd5b6139c48282614166565b5050565b60405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902081565b6000613a106000801b33612832565b613a82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616c6c6572206973206e6f7420616e2061646d696e0000000000000000000081525060200191505060405180910390fd5b613ac160405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083612832565b15613b34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f67757920697320616c726561647920612074656d706c6174657200000000000081525060200191505060405180910390fd5b613b7360405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083611898565b60019050919050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b613c18613e6a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613cd9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615cb06026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000613e45836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6149f5565b905092915050565b6000613e63826005614a6590919063ffffffff16565b9050919050565b600033905090565b816007600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16613ee5836123ca565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000613f3982600001614a7f565b9050919050565b6000613f4b82613e4d565b613fa0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615cfa602c913960400191505060405180910390fd5b6000613fab836123ca565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061401a57508373ffffffffffffffffffffffffffffffffffffffff1661400284611612565b73ffffffffffffffffffffffffffffffffffffffff16145b8061402b575061402a8185613b7c565b5b91505092915050565b60006140a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4552433732313a20746f6b656e207472616e736665722064697361626c65640081525060200191505060405180910390fd5b6140b3838383614a90565b505050565b6140e08160016000858152602001908152602001600020600001613e1d90919063ffffffff16565b15614148576140ed613e6a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600061415b8360000183614cd3565b60001c905092915050565b61418e8160016000858152602001908152602001600020600001614d5690919063ffffffff16565b156141f65761419b613e6a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600260009054906101000a900460ff1661427c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600260006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6142c0613e6a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600061430e826123ca565b905061431c81600084614d86565b614327600083613e72565b6000600b60008481526020019081526020016000208054600181600116156101000203166002900490501461437657600b600083815260200190815260200160002060006143759190615b91565b5b6143c782600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020614d8b90919063ffffffff16565b506143dc826005614da590919063ffffffff16565b5081600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6000806000806144508660000186614dbf565b915091508160001c8160001c8090509350935050509250929050565b60006144ae83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614e58565b905092915050565b80600c90805190602001906144cc929190615b11565b5050565b60006144e3846000018460001b84614f18565b60001c90509392505050565b60006144fd8260000161500e565b9050919050565b600260009054906101000a900460ff1615614587576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586145cb613e6a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600061461d8360000183614cd3565b60001c905092915050565b6000614650836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61501f565b905092915050565b614663848484614034565b61466f84848484615042565b6146c4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180615c7e6032913960400191505060405180910390fd5b50505050565b60606000821415614712576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061480c565b600082905060005b6000821461473c578080600101915050600a828161473457fe5b04915061471a565b60608167ffffffffffffffff8111801561475557600080fd5b506040519080825280601f01601f1916602001820160405280156147885781602001600182028036833780820191505090505b50905060006001830390508593505b6000841461480457600a84816147a957fe5b0660300160f81b828280600190039350815181106147c357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84816147fc57fe5b049350614797565b819450505050505b919050565b600061481f8260000161500e565b9050919050565b60008082905060008090505b85518110156148d057600086828151811061484957fe5b6020026020010151905080831161489057828160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506148c2565b808360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092505b508080600101915050614832565b508381149150509392505050565b600081600001549050919050565b60008082840190508381101561496a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600061498984614984600d6148de565b615287565b6149e0614996600d6148de565b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061547b565b6149ea600d615505565b600190509392505050565b6000614a01838361501f565b614a5a578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050614a5f565b600090505b92915050565b6000614a77836000018360001b61551b565b905092915050565b600081600001805490509050919050565b8273ffffffffffffffffffffffffffffffffffffffff16614ab0826123ca565b73ffffffffffffffffffffffffffffffffffffffff1614614b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180615e876029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180615cd66024913960400191505060405180910390fd5b614bad838383614d86565b614bb8600082613e72565b614c0981600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020614d8b90919063ffffffff16565b50614c5b81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061553e90919063ffffffff16565b50614c72818360056155589092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600081836000018054905011614d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615bff6022913960400191505060405180910390fd5b826000018281548110614d4357fe5b9060005260206000200154905092915050565b6000614d7e836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61558d565b905092915050565b505050565b6000614d9d836000018360001b61558d565b905092915050565b6000614db7836000018360001b615675565b905092915050565b60008082846000018054905011614e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615de16022913960400191505060405180910390fd5b6000846000018481548110614e3257fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b6000838311158290614f05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614eca578082015181840152602081019050614eaf565b50505050905090810190601f168015614ef75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008084600101600085815260200190815260200160002054905060008114158390614fdf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614fa4578082015181840152602081019050614f89565b50505050905090810190601f168015614fd15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50846000016001820381548110614ff257fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b60006150638473ffffffffffffffffffffffffffffffffffffffff1661578e565b615070576001905061527f565b606061520663150b7a0260e01b615085613e6a565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561513557808201518184015260208101905061511a565b50505050905090810190601f1680156151625780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051806060016040528060328152602001615c7e603291398773ffffffffffffffffffffffffffffffffffffffff166157d99092919063ffffffff16565b9050600081806020019051602081101561521f57600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561532a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433732313a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b61533381613e4d565b156153a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000081525060200191505060405180910390fd5b6153b260008383614d86565b61540381600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061553e90919063ffffffff16565b5061541a818360056155589092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61548482613e4d565b6154d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615e2f602c913960400191505060405180910390fd5b80600b60008481526020019081526020016000209080519060200190615500929190615b11565b505050565b6001816000016000828254019250508190555050565b600080836001016000848152602001908152602001600020541415905092915050565b6000615550836000018360001b6149f5565b905092915050565b6000615584846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b6157f1565b90509392505050565b6000808360010160008481526020019081526020016000205490506000811461566957600060018203905060006001866000018054905003905060008660000182815481106155d857fe5b90600052602060002001549050808760000184815481106155f557fe5b906000526020600020018190555060018301876001016000838152602001908152602001600020819055508660000180548061562d57fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061566f565b60009150505b92915050565b6000808360010160008481526020019081526020016000205490506000811461578257600060018203905060006001866000018054905003905060008660000182815481106156c057fe5b90600052602060002090600202019050808760000184815481106156e057fe5b906000526020600020906002020160008201548160000155600182015481600101559050506001830187600101600083600001548152602001908152602001600020819055508660000180548061573357fe5b6001900381819060005260206000209060020201600080820160009055600182016000905550509055866001016000878152602001908152602001600020600090556001945050505050615788565b60009150505b92915050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91508082141580156157d057506000801b8214155b92505050919050565b60606157e884846000856158cd565b90509392505050565b6000808460010160008581526020019081526020016000205490506000811415615898578460000160405180604001604052808681526020018581525090806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010155505084600001805490508560010160008681526020019081526020016000208190555060019150506158c6565b828560000160018303815481106158ab57fe5b90600052602060002090600202016001018190555060009150505b9392505050565b60606158d88561578e565b61594a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b6020831061599a5780518252602082019150602081019050602083039250615977565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146159fc576040519150601f19603f3d011682016040523d82523d6000602084013e615a01565b606091505b50915091508115615a16578092505050615acb565b600081511115615a295780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015615a90578082015181840152602081019050615a75565b50505050905090810190601f168015615abd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b949350505050565b6040518060800160405280606081526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615b5257805160ff1916838001178555615b80565b82800160010185558215615b80579182015b82811115615b7f578251825591602001919060010190615b64565b5b509050615b8d9190615bd9565b5090565b50805460018160011615610100020316600290046000825580601f10615bb75750615bd6565b601f016020900490600052602060002090810190615bd59190615bd9565b5b50565b615bfb91905b80821115615bf7576000816000905550600101615bdf565b5090565b9056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e744261646765466163746f72793a206d75737420686176652070617573657220726f6c6520746f20756e70617573654552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b654552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4261646765466163746f72793a206d75737420686176652070617573657220726f6c6520746f2070617573654552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732314275726e61626c653a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a264697066735822122061bc61aa9727e209cef83442dac2a8aba11a473757b39e122efd43075e22367d64736f6c634300060b003368747470733a2f2f6261646765732e6d616b657264616f2e636f6d2f746f6b656e2f", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102835760003560e01c80636352211e1161015c578063a22cb465116100ce578063d4c10e4611610087578063d4c10e4614611176578063d547741f14611266578063e63ab1e9146112b4578063e6c0d714146112d2578063e985e9c51461132e578063f2fde38b146113aa57610284565b8063a22cb46514610ddf578063b5900eea14610e2f578063b88d4fde14610e4d578063c87b56dd14610f52578063ca15c87314610ff9578063ccb4bcb61461103b57610284565b80638456cb59116101205780638456cb5914610c0c5780638da5cb5b14610c165780639010d07c14610c6057806391d1485414610cd857806395d89b4114610d3e578063a217fddf14610dc157610284565b80636352211e14610a9b5780636c0360eb14610b095780636cdd0a1614610b8c57806370a0823114610baa578063715018a614610c0257610284565b806336568abe116101f55780634de46fd0116101b95780634de46fd0146108bc5780634f6ccce7146108fe57806355de28ae1461094057806355f804b3146109865780635c975abb14610a175780635ddb084514610a3957610284565b806336568abe1461076c5780633f4ba83a146107ba57806342842e0e146107c457806342966c68146108325780634ba360ba1461086057610284565b806318160ddd1161024757806318160ddd1461046f57806323b872dd1461048d578063248a9ca3146104fb5780632f2ff15d1461053d5780632f745c591461058b57806331543cf4146105ed57610284565b806301ffc9a71461028957806304523af1146102ee57806306fdde0314610330578063081812fc146103b3578063095ea7b31461042157610284565b5b600080fd5b6102d46004803603602081101561029f57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506113ee565b604051808215151515815260200191505060405180910390f35b61031a6004803603602081101561030457600080fd5b8101908080359060200190929190505050611456565b6040518082815260200191505060405180910390f35b610338611570565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561037857808201518184015260208101905061035d565b50505050905090810190601f1680156103a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103df600480360360208110156103c957600080fd5b8101908080359060200190929190505050611612565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61046d6004803603604081101561043757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116ad565b005b6104776117f1565b6040518082815260200191505060405180910390f35b6104f9600480360360608110156104a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611802565b005b6105276004803603602081101561051157600080fd5b8101908080359060200190929190505050611878565b6040518082815260200191505060405180910390f35b6105896004803603604081101561055357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611898565b005b6105d7600480360360408110156105a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611922565b6040518082815260200191505060405180910390f35b6106196004803603602081101561060357600080fd5b810190808035906020019092919050505061197d565b60405180806020018060200180602001848103845287818151815260200191508051906020019080838360005b83811015610661578082015181840152602081019050610646565b50505050905090810190601f16801561068e5780820380516001836020036101000a031916815260200191505b50848103835286818151815260200191508051906020019080838360005b838110156106c75780820151818401526020810190506106ac565b50505050905090810190601f1680156106f45780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b8381101561072d578082015181840152602081019050610712565b50505050905090810190601f16801561075a5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b6107b86004803603604081101561078257600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d08565b005b6107c2611da1565b005b610830600480360360608110156107da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e3f565b005b61085e6004803603602081101561084857600080fd5b8101908080359060200190929190505050611e5f565b005b6108a26004803603602081101561087657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ed1565b604051808215151515815260200191505060405180910390f35b6108e8600480360360208110156108d257600080fd5b810190808035906020019092919050505061204b565b6040518082815260200191505060405180910390f35b61092a6004803603602081101561091457600080fd5b8101908080359060200190929190505050612166565b6040518082815260200191505060405180910390f35b61096c6004803603602081101561095657600080fd5b8101908080359060200190929190505050612189565b604051808215151515815260200191505060405180910390f35b6109fd6004803603602081101561099c57600080fd5b81019080803590602001906401000000008111156109b957600080fd5b8201836020820111156109cb57600080fd5b803590602001918460018302840111640100000000831117156109ed57600080fd5b909192939192939050505061226c565b604051808215151515815260200191505060405180910390f35b610a1f61238e565b604051808215151515815260200191505060405180910390f35b610a8560048036036040811015610a4f57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123a5565b6040518082815260200191505060405180910390f35b610ac760048036036020811015610ab157600080fd5b81019080803590602001909291905050506123ca565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b11612401565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b51578082015181840152602081019050610b36565b50505050905090810190601f168015610b7e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610b946124a3565b6040518082815260200191505060405180910390f35b610bec60048036036020811015610bc057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124dc565b6040518082815260200191505060405180910390f35b610c0a6125b1565b005b610c14612739565b005b610c1e6127d7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610c9660048036036040811015610c7657600080fd5b810190808035906020019092919080359060200190929190505050612800565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610d2460048036036040811015610cee57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612832565b604051808215151515815260200191505060405180910390f35b610d46612864565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d86578082015181840152602081019050610d6b565b50505050905090810190601f168015610db35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610dc9612906565b6040518082815260200191505060405180910390f35b610e2d60048036036040811015610df557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061290d565b005b610e37612ac5565b6040518082815260200191505060405180910390f35b610f5060048036036080811015610e6357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610eca57600080fd5b820183602082011115610edc57600080fd5b80359060200191846001830284011164010000000083111715610efe57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612b55565b005b610f7e60048036036020811015610f6857600080fd5b8101908080359060200190929190505050612bcd565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610fbe578082015181840152602081019050610fa3565b50505050905090810190601f168015610feb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6110256004803603602081101561100f57600080fd5b8101908080359060200190929190505050612eb6565b6040518082815260200191505060405180910390f35b61115c6004803603606081101561105157600080fd5b810190808035906020019064010000000081111561106e57600080fd5b82018360208201111561108057600080fd5b803590602001918460018302840111640100000000831117156110a257600080fd5b9091929391929390803590602001906401000000008111156110c357600080fd5b8201836020820111156110d557600080fd5b803590602001918460018302840111640100000000831117156110f757600080fd5b90919293919293908035906020019064010000000081111561111857600080fd5b82018360208201111561112a57600080fd5b8035906020019184600183028401116401000000008311171561114c57600080fd5b9091929391929390505050612edd565b604051808215151515815260200191505060405180910390f35b61124c6004803603606081101561118c57600080fd5b81019080803590602001906401000000008111156111a957600080fd5b8201836020820111156111bb57600080fd5b803590602001918460208302840111640100000000831117156111dd57600080fd5b9091929391929390803590602001909291908035906020019064010000000081111561120857600080fd5b82018360208201111561121a57600080fd5b8035906020019184600183028401116401000000008311171561123c57600080fd5b90919293919293905050506132ec565b604051808215151515815260200191505060405180910390f35b6112b26004803603604081101561127c57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061393e565b005b6112bc6139c8565b6040518082815260200191505060405180910390f35b611314600480360360208110156112e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613a01565b604051808215151515815260200191505060405180910390f35b6113906004803603604081101561134457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613b7c565b604051808215151515815260200191505060405180910390f35b6113ec600480360360208110156113c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613c10565b005b600060036000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6000600260009054906101000a900460ff16156114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b81600f8054905011611555576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f2074656d706c61746520776974682074686174206964000000000000000081525060200191505060405180910390fd5b60106000838152602001908152602001600020549050919050565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116085780601f106115dd57610100808354040283529160200191611608565b820191906000526020600020905b8154815290600101906020018083116115eb57829003601f168201915b5050505050905090565b600061161d82613e4d565b611672576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615e03602c913960400191505060405180910390fd5b6007600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006116b8826123ca565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561173f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615edf6021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661175e613e6a565b73ffffffffffffffffffffffffffffffffffffffff16148061178d575061178c81611787613e6a565b613b7c565b5b6117e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180615d566038913960400191505060405180910390fd5b6117ec8383613e72565b505050565b60006117fd6005613f2b565b905090565b61181361180d613e6a565b82613f40565b611868576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180615f006031913960400191505060405180910390fd5b611873838383614034565b505050565b600060016000838152602001908152602001600020600201549050919050565b6118bf60016000848152602001908152602001600020600201546118ba613e6a565b612832565b611914576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180615c21602f913960400191505060405180910390fd5b61191e82826140b8565b5050565b600061197582600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061414c90919063ffffffff16565b905092915050565b6060806060600260009054906101000a900460ff1615611a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b83600f8054905011611a7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f2074656d706c61746520776974682074686174206964000000000000000081525060200191505060405180910390fd5b611a87615ad3565b600f8581548110611a9457fe5b9060005260206000209060040201604051806080016040529081600082018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b465780601f10611b1b57610100808354040283529160200191611b46565b820191906000526020600020905b815481529060010190602001808311611b2957829003601f168201915b50505050508152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611be85780601f10611bbd57610100808354040283529160200191611be8565b820191906000526020600020905b815481529060010190602001808311611bcb57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c8a5780601f10611c5f57610100808354040283529160200191611c8a565b820191906000526020600020905b815481529060010190602001808311611c6d57829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050806000015181602001518260400151935093509350509193909250565b611d10613e6a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611d93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180615f61602f913960400191505060405180910390fd5b611d9d8282614166565b5050565b611de060405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902033612832565b611e35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180615c50602e913960400191505060405180910390fd5b611e3d6141fa565b565b611e5a83838360405180602001604052806000815250612b55565b505050565b611e70611e6a613e6a565b82613f40565b611ec5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180615f316030913960400191505060405180910390fd5b611ece81614303565b50565b6000611ee06000801b33612832565b611f52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616c6c6572206973206e6f7420616e2061646d696e0000000000000000000081525060200191505060405180910390fd5b611f9160405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083612832565b612003576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f677579206973206e6f7420612074656d706c617465720000000000000000000081525060200191505060405180910390fd5b61204260405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e01905060405180910390208361393e565b60019050919050565b6000600260009054906101000a900460ff16156120d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6120d982613e4d565b61214b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4552433732313a204e6f20746f6b656e2077697468207468617420696400000081525060200191505060405180910390fd5b60116000838152602001908152602001600020549050919050565b60008061217d83600561443d90919063ffffffff16565b50905080915050919050565b6000600260009054906101000a900460ff161561220e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b60006122198361204b565b90506122426001601060008481526020019081526020016000205461446c90919063ffffffff16565b601060008381526020019081526020016000208190555061226283611e5f565b6001915050919050565b6000612276613e6a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612337576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61238483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506144b6565b6001905092915050565b6000600260009054906101000a900460ff16905090565b600e602052816000526040600020602052806000526040600020600091509150505481565b60006123fa82604051806060016040528060298152602001615db86029913960056144d09092919063ffffffff16565b9050919050565b6060600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124995780601f1061246e57610100808354040283529160200191612499565b820191906000526020600020905b81548152906001019060200180831161247c57829003601f168201915b5050505050905090565b60405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180615d8e602a913960400191505060405180910390fd5b6125aa600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206144ef565b9050919050565b6125b9613e6a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461267a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61277860405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902033612832565b6127cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615e5b602c913960400191505060405180910390fd5b6127d5614504565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600061282a826001600086815260200190815260200160002060000161460e90919063ffffffff16565b905092915050565b600061285c826001600086815260200190815260200160002060000161462890919063ffffffff16565b905092915050565b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156128fc5780601f106128d1576101008083540402835291602001916128fc565b820191906000526020600020905b8154815290600101906020018083116128df57829003601f168201915b5050505050905090565b6000801b81565b612915613e6a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156129b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600860006129c3613e6a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16612a70613e6a565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b6000600260009054906101000a900460ff1615612b4a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b600f80549050905090565b612b66612b60613e6a565b83613f40565b612bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180615f006031913960400191505060405180910390fd5b612bc784848484614658565b50505050565b6060612bd882613e4d565b612c2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180615eb0602f913960400191505060405180910390fd5b6060600b60008481526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612cd65780601f10612cab57610100808354040283529160200191612cd6565b820191906000526020600020905b815481529060010190602001808311612cb957829003601f168201915b505050505090506000600c8054600181600116156101000203166002900490501415612d055780915050612eb1565b600081511115612dde57600c816040516020018083805460018160011615610100020316600290048015612d705780601f10612d4e576101008083540402835291820191612d70565b820191906000526020600020905b815481529060010190602001808311612d5c575b505082805190602001908083835b60208310612da15780518252602082019150602081019050602083039250612d7e565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052915050612eb1565b600c612de9846146ca565b6040516020018083805460018160011615610100020316600290048015612e475780601f10612e25576101008083540402835291820191612e47565b820191906000526020600020905b815481529060010190602001808311612e33575b505082805190602001908083835b60208310612e785780518252602082019150602081019050602083039250612e55565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529150505b919050565b6000612ed660016000848152602001908152602001600020600001614811565b9050919050565b6000612f1e60405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902033612832565b612f90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f43616c6c6572206973206e6f7420612074656d706c617465206f776e6572000081525060200191505060405180910390fd5b600260009054906101000a900460ff1615613013576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b61301b615ad3565b604051806080016040528089898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505081526020013373ffffffffffffffffffffffffffffffffffffffff168152509050600f8190806001815401808255809150506001900390600052602060002090600402016000909190919091506000820151816000019080519060200190613168929190615b11565b506020820151816001019080519060200190613185929190615b11565b5060408201518160020190805190602001906131a2929190615b11565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505060006132076001600f8054905061446c90919063ffffffff16565b90507f335347d3c0abbe88e13ee17ff9db9ff2aabea3e099f1ffd10807e9c7f9cf82ad818a8a8a8a8a8a6040518088815260200180602001806020018060200184810384528a8a82818152602001925080828437600081840152601f19601f8201169050808301925050508481038352888882818152602001925080828437600081840152601f19601f8201169050808301925050508481038252868682818152602001925080828437600081840152601f19601f8201169050808301925050509a505050505050505050505060405180910390a16001925050509695505050505050565b6000600260009054906101000a900460ff1615613371576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b83600f80549050116133eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f2074656d706c61746520776974682074686174206964000000000000000081525060200191505060405180910390fd5b6000600e600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146134b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f426164676520616c72656164792061637469766174656421000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ebfa62b985336040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561355657600080fd5b505afa15801561356a573d6000803e3d6000fd5b505050506040513d602081101561358057600080fd5b8101908080519060200190929190505050806136ee57506136ed7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c2b40ae4866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561360b57600080fd5b505afa15801561361f573d6000803e3d6000fd5b505050506040513d602081101561363557600080fd5b810190808051906020019092919050505033604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140191505060405160208183030381529060405280519060200120888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506148269092919063ffffffff16565b5b613760576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43616c6c6572206973206e6f7420612072656465656d6572000000000000000081525060200191505060405180910390fd5b836011600061376f600d6148de565b8152602001908152602001600020819055506137a8600160106000878152602001908152602001600020546148ec90919063ffffffff16565b60106000868152602001908152602001600020819055506001600e600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613820338484614974565b613892576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4552433732313a20546f6b656e206e6f74206d696e746564000000000000000081525060200191505060405180910390fd5b7ffcdd666d85b3ffd083437c2d6d3fb35552e00683b0c6e248e30b534990f5a98e33858585604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060405180910390a16001905095945050505050565b6139656001600084815260200190815260200160002060020154613960613e6a565b612832565b6139ba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180615d266030913960400191505060405180910390fd5b6139c48282614166565b5050565b60405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902081565b6000613a106000801b33612832565b613a82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616c6c6572206973206e6f7420616e2061646d696e0000000000000000000081525060200191505060405180910390fd5b613ac160405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083612832565b15613b34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f67757920697320616c726561647920612074656d706c6174657200000000000081525060200191505060405180910390fd5b613b7360405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083611898565b60019050919050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b613c18613e6a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613cd9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615cb06026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000613e45836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6149f5565b905092915050565b6000613e63826005614a6590919063ffffffff16565b9050919050565b600033905090565b816007600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16613ee5836123ca565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000613f3982600001614a7f565b9050919050565b6000613f4b82613e4d565b613fa0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615cfa602c913960400191505060405180910390fd5b6000613fab836123ca565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061401a57508373ffffffffffffffffffffffffffffffffffffffff1661400284611612565b73ffffffffffffffffffffffffffffffffffffffff16145b8061402b575061402a8185613b7c565b5b91505092915050565b60006140a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4552433732313a20746f6b656e207472616e736665722064697361626c65640081525060200191505060405180910390fd5b6140b3838383614a90565b505050565b6140e08160016000858152602001908152602001600020600001613e1d90919063ffffffff16565b15614148576140ed613e6a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600061415b8360000183614cd3565b60001c905092915050565b61418e8160016000858152602001908152602001600020600001614d5690919063ffffffff16565b156141f65761419b613e6a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600260009054906101000a900460ff1661427c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600260006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6142c0613e6a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600061430e826123ca565b905061431c81600084614d86565b614327600083613e72565b6000600b60008481526020019081526020016000208054600181600116156101000203166002900490501461437657600b600083815260200190815260200160002060006143759190615b91565b5b6143c782600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020614d8b90919063ffffffff16565b506143dc826005614da590919063ffffffff16565b5081600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6000806000806144508660000186614dbf565b915091508160001c8160001c8090509350935050509250929050565b60006144ae83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614e58565b905092915050565b80600c90805190602001906144cc929190615b11565b5050565b60006144e3846000018460001b84614f18565b60001c90509392505050565b60006144fd8260000161500e565b9050919050565b600260009054906101000a900460ff1615614587576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586145cb613e6a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600061461d8360000183614cd3565b60001c905092915050565b6000614650836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61501f565b905092915050565b614663848484614034565b61466f84848484615042565b6146c4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180615c7e6032913960400191505060405180910390fd5b50505050565b60606000821415614712576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061480c565b600082905060005b6000821461473c578080600101915050600a828161473457fe5b04915061471a565b60608167ffffffffffffffff8111801561475557600080fd5b506040519080825280601f01601f1916602001820160405280156147885781602001600182028036833780820191505090505b50905060006001830390508593505b6000841461480457600a84816147a957fe5b0660300160f81b828280600190039350815181106147c357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84816147fc57fe5b049350614797565b819450505050505b919050565b600061481f8260000161500e565b9050919050565b60008082905060008090505b85518110156148d057600086828151811061484957fe5b6020026020010151905080831161489057828160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506148c2565b808360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092505b508080600101915050614832565b508381149150509392505050565b600081600001549050919050565b60008082840190508381101561496a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600061498984614984600d6148de565b615287565b6149e0614996600d6148de565b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061547b565b6149ea600d615505565b600190509392505050565b6000614a01838361501f565b614a5a578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050614a5f565b600090505b92915050565b6000614a77836000018360001b61551b565b905092915050565b600081600001805490509050919050565b8273ffffffffffffffffffffffffffffffffffffffff16614ab0826123ca565b73ffffffffffffffffffffffffffffffffffffffff1614614b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180615e876029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180615cd66024913960400191505060405180910390fd5b614bad838383614d86565b614bb8600082613e72565b614c0981600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020614d8b90919063ffffffff16565b50614c5b81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061553e90919063ffffffff16565b50614c72818360056155589092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600081836000018054905011614d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615bff6022913960400191505060405180910390fd5b826000018281548110614d4357fe5b9060005260206000200154905092915050565b6000614d7e836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61558d565b905092915050565b505050565b6000614d9d836000018360001b61558d565b905092915050565b6000614db7836000018360001b615675565b905092915050565b60008082846000018054905011614e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615de16022913960400191505060405180910390fd5b6000846000018481548110614e3257fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b6000838311158290614f05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614eca578082015181840152602081019050614eaf565b50505050905090810190601f168015614ef75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008084600101600085815260200190815260200160002054905060008114158390614fdf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614fa4578082015181840152602081019050614f89565b50505050905090810190601f168015614fd15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50846000016001820381548110614ff257fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b60006150638473ffffffffffffffffffffffffffffffffffffffff1661578e565b615070576001905061527f565b606061520663150b7a0260e01b615085613e6a565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561513557808201518184015260208101905061511a565b50505050905090810190601f1680156151625780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051806060016040528060328152602001615c7e603291398773ffffffffffffffffffffffffffffffffffffffff166157d99092919063ffffffff16565b9050600081806020019051602081101561521f57600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561532a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433732313a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b61533381613e4d565b156153a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000081525060200191505060405180910390fd5b6153b260008383614d86565b61540381600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061553e90919063ffffffff16565b5061541a818360056155589092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61548482613e4d565b6154d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615e2f602c913960400191505060405180910390fd5b80600b60008481526020019081526020016000209080519060200190615500929190615b11565b505050565b6001816000016000828254019250508190555050565b600080836001016000848152602001908152602001600020541415905092915050565b6000615550836000018360001b6149f5565b905092915050565b6000615584846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b6157f1565b90509392505050565b6000808360010160008481526020019081526020016000205490506000811461566957600060018203905060006001866000018054905003905060008660000182815481106155d857fe5b90600052602060002001549050808760000184815481106155f557fe5b906000526020600020018190555060018301876001016000838152602001908152602001600020819055508660000180548061562d57fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061566f565b60009150505b92915050565b6000808360010160008481526020019081526020016000205490506000811461578257600060018203905060006001866000018054905003905060008660000182815481106156c057fe5b90600052602060002090600202019050808760000184815481106156e057fe5b906000526020600020906002020160008201548160000155600182015481600101559050506001830187600101600083600001548152602001908152602001600020819055508660000180548061573357fe5b6001900381819060005260206000209060020201600080820160009055600182016000905550509055866001016000878152602001908152602001600020600090556001945050505050615788565b60009150505b92915050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91508082141580156157d057506000801b8214155b92505050919050565b60606157e884846000856158cd565b90509392505050565b6000808460010160008581526020019081526020016000205490506000811415615898578460000160405180604001604052808681526020018581525090806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010155505084600001805490508560010160008681526020019081526020016000208190555060019150506158c6565b828560000160018303815481106158ab57fe5b90600052602060002090600202016001018190555060009150505b9392505050565b60606158d88561578e565b61594a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b6020831061599a5780518252602082019150602081019050602083039250615977565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146159fc576040519150601f19603f3d011682016040523d82523d6000602084013e615a01565b606091505b50915091508115615a16578092505050615acb565b600081511115615a295780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015615a90578082015181840152602081019050615a75565b50505050905090810190601f168015615abd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b949350505050565b6040518060800160405280606081526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615b5257805160ff1916838001178555615b80565b82800160010185558215615b80579182015b82811115615b7f578251825591602001919060010190615b64565b5b509050615b8d9190615bd9565b5090565b50805460018160011615610100020316600290046000825580601f10615bb75750615bd6565b601f016020900490600052602060002090810190615bd59190615bd9565b5b50565b615bfb91905b80821115615bf7576000816000905550600101615bdf565b5090565b9056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e744261646765466163746f72793a206d75737420686176652070617573657220726f6c6520746f20756e70617573654552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b654552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4261646765466163746f72793a206d75737420686176652070617573657220726f6c6520746f2070617573654552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732314275726e61626c653a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a264697066735822122061bc61aa9727e209cef83442dac2a8aba11a473757b39e122efd43075e22367d64736f6c634300060b0033", "immutableReferences": { "40": [ { @@ -1125,7 +1125,7 @@ }, "sourceMap": "896:6361:0:-:0;;;1729:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3565:365:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;865:17:6;885:12;:10;;;:12;;:::i;:::-;865:32;;916:9;907:6;;:18;;;;;;;;;;;;;;;;;;973:9;940:43;;969:1;940:43;;;;;;;;;;;;831:159;933:5:21;923:7;;:15;;;;;;;;;;;;;;;;;;908:39:1;1762:4:5;919:18:1;;939:7;:5;;;:7;;:::i;:::-;908:10;;;:39;;:::i;:::-;958:35;779:27;;;;;;;;;;;;;;;;;;;985:7;:5;;;:7;;:::i;:::-;958:10;;;:35;;:::i;:::-;1003:32;848:24;;;;;;;;;;;;;;;;;;;1027:7;:5;;;:7;;:::i;:::-;1003:10;;;:32;;:::i;:::-;751:40:8;418:10;770:20;;751:18;;;:40;;:::i;:::-;3645:4:11;3637:5;:12;;;;;;;;;;;;:::i;:::-;;3669:6;3659:7;:16;;;;;;;;;;;;:::i;:::-;;3763:40;2730:10;3782:20;;3763:18;;;:40;;:::i;:::-;3813:49;3062:10;3832:29;;3813:18;;;:49;;:::i;:::-;3872:51;3435:10;3891:31;;3872:18;;;:51;;:::i;:::-;3565:365;;1811:49:0::1;;;;;;;;;;;;;;;;;;:11;;;:49;;:::i;:::-;1890:6;1866:31;;;;;;;;;;::::0;::::1;1729:174:::0;896:6361;;590:104:4;643:15;677:10;670:17;;590:104;:::o;1066:77:6:-;1104:7;1130:6;;;;;;;;;;;1123:13;;1066:77;:::o;6578:110:5:-;6656:25;6667:4;6673:7;6656:10;;;:25;;:::i;:::-;6578:110;;:::o;1482:198:8:-;1580:10;1565:25;;:11;:25;;;;;1557:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1669:4;1633:20;:33;1654:11;1633:33;;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;1482:198;:::o;14647:98:11:-;14730:8;14719;:19;;;;;;;;;;;;:::i;:::-;;14647:98;:::o;7015:184:5:-;7088:33;7113:7;7088:6;:12;7095:4;7088:12;;;;;;;;;;;:20;;:24;;;;;;:33;;;;:::i;:::-;7084:109;;;7169:12;:10;;;:12;;:::i;:::-;7142:40;;7160:7;7142:40;;7154:4;7142:40;;;;;;;;;;7084:109;7015:184;;:::o;4864:141:20:-;4934:4;4957:41;4962:3;:10;;4990:5;4982:14;;4974:23;;4957:4;;;:41;;:::i;:::-;4950:48;;4864:141;;;;:::o;1611:404::-;1674:4;1695:21;1705:3;1710:5;1695:9;;;:21;;:::i;:::-;1690:319;;1732:3;:11;;1749:5;1732:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1912:3;:11;;:18;;;;1890:3;:12;;:19;1903:5;1890:19;;;;;;;;;;;:40;;;;1951:4;1944:11;;;;1690:319;1993:5;1986:12;;1611:404;;;;;:::o;3776:127::-;3849:4;3895:1;3872:3;:12;;:19;3885:5;3872:19;;;;;;;;;;;;:24;;3865:31;;3776:127;;;;:::o;896:6361:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;", "deployedSourceMap": "896:6361:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2066:8;;;948:140:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5190:221:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4486:90:11;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7093:209;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6651:381;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6161:200;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7941:300;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4272:112:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4634:223;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5938:152:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3134:348:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5808:205:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2439:156:1;;;:::i;:::-;;8307:149:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;445:241:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1914:200:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4776:193:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6433:161:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6682:244:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2250:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1040:76:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1169:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4257:167:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5772:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;738:68:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3989:211:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1689:145:6;;;:::i;:::-;;2205:140:1;;;:::i;:::-;;1066:77:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3955:136:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2940:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4640:94:11;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1717:49:5;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7369:290:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3654:115:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8522:282:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4800:740;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3245:125:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4063:481:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5652:830;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5091:226:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;810:62:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1527:201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7725:154:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1983:240:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;948:140:8;1025:4;1048:20;:33;1069:11;1048:33;;;;;;;;;;;;;;;;;;;;;;;;;;;1041:40;;948:140;;;:::o;5190:221:0:-;5281:7;1346::21;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5323:10:0::1;5304:9;:16;;;;:29;5296:66;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;5375:19;:31;5395:10;5375:31;;;;;;;;;;;;5368:38;;5190:221:::0;;;:::o;4486:90:11:-;4532:13;4564:5;4557:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4486:90;:::o;7093:209::-;7161:7;7188:16;7196:7;7188;:16::i;:::-;7180:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7271:15;:24;7287:7;7271:24;;;;;;;;;;;;;;;;;;;;;7264:31;;7093:209;;;:::o;6651:381::-;6731:13;6747:16;6755:7;6747;:16::i;:::-;6731:32;;6787:5;6781:11;;:2;:11;;;;6773:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6865:5;6849:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;6874:37;6891:5;6898:12;:10;:12::i;:::-;6874:16;:37::i;:::-;6849:62;6841:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7004:21;7013:2;7017:7;7004:8;:21::i;:::-;6651:381;;;:::o;6161:200::-;6214:7;6333:21;:12;:19;:21::i;:::-;6326:28;;6161:200;:::o;7941:300::-;8100:41;8119:12;:10;:12::i;:::-;8133:7;8100:18;:41::i;:::-;8092:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8206:28;8216:4;8222:2;8226:7;8206:9;:28::i;:::-;7941:300;;;:::o;4272:112:5:-;4329:7;4355:6;:12;4362:4;4355:12;;;;;;;;;;;:22;;;4348:29;;4272:112;;;:::o;4634:223::-;4717:45;4725:6;:12;4732:4;4725:12;;;;;;;;;;;:22;;;4749:12;:10;:12::i;:::-;4717:7;:45::i;:::-;4709:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4825:25;4836:4;4842:7;4825:10;:25::i;:::-;4634:223;;:::o;5938:152:11:-;6027:7;6053:30;6077:5;6053:13;:20;6067:5;6053:20;;;;;;;;;;;;;;;:23;;:30;;;;:::i;:::-;6046:37;;5938:152;;;;:::o;3134:348:0:-;3212:18;3232:25;3259:19;1346:7:21;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3313:10:0::1;3294:9;:16;;;;:29;3286:66;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;3358:29;;:::i;:::-;3390:9;3400:10;3390:21;;;;;;;;;;;;;;;;;;3358:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;3425:8;:13;;;3440:8;:20;;;3462:8;:14;;;3417:60;;;;;;;3134:348:::0;;;;;:::o;5808:205:5:-;5905:12;:10;:12::i;:::-;5894:23;;:7;:23;;;5886:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5980:26;5992:4;5998:7;5980:11;:26::i;:::-;5808:205;;:::o;2439:156:1:-;2485:32;848:24;;;;;;;;;;;;;;;;;;;2506:10;2485:7;:32::i;:::-;2477:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2578:10;:8;:10::i;:::-;2439:156::o;8307:149:11:-;8410:39;8427:4;8433:2;8437:7;8410:39;;;;;;;;;;;;:16;:39::i;:::-;8307:149;;;:::o;445:241:12:-;561:41;580:12;:10;:12::i;:::-;594:7;561:18;:41::i;:::-;553:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;665:14;671:7;665:5;:14::i;:::-;445:241;:::o;1914:200:1:-;1980:4;1103:39;1762:4:5;1111:18:1;;1131:10;1103:7;:39::i;:::-;1095:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2000:28:::1;779:27;;;;;;;::::0;::::1;;;;;;;;;;;2024:3;2000:7;:28::i;:::-;1992:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;2061:31;779:27;;;;;;;::::0;::::1;;;;;;;;;;;2088:3;2061:10;:31::i;:::-;2105:4;2098:11;;1914:200:::0;;;:::o;4776:193:0:-;4854:7;1346::21;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4877:16:0::1;4885:7;4877;:16::i;:::-;4869:58;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;4940:15;:24;4956:7;4940:24;;;;;;;;;;;;4933:31;;4776:193:::0;;;:::o;6433:161:11:-;6500:7;6520:15;6541:22;6557:5;6541:12;:15;;:22;;;;:::i;:::-;6519:44;;;6580:7;6573:14;;;6433:161;;;:::o;6682:244:0:-;6750:4;1346:7:21;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6761:18:0::1;6782:25;6799:7;6782:16;:25::i;:::-;6761:46;;6847:38;6883:1;6847:19;:31;6867:10;6847:31;;;;;;;;;;;;:35;;:38;;;;:::i;:::-;6813:19;:31;6833:10;6813:31;;;;;;;;;;;:72;;;;6891:13;6896:7;6891:4;:13::i;:::-;6917:4;6910:11;;;6682:244:::0;;;:::o;2250:127::-;2323:4;1280:12:6;:10;:12::i;:::-;1270:22;;:6;;;;;;;;;;;:22;;;1262:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2335:20:0::1;2347:7;;2335:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:11;:20::i;:::-;2368:4;2361:11;;2250:127:::0;;;;:::o;1040:76:21:-;1079:4;1102:7;;;;;;;;;;;1095:14;;1040:76;:::o;1169:65:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4257:167:11:-;4321:7;4347:70;4364:7;4347:70;;;;;;;;;;;;;;;;;:12;:16;;:70;;;;;:::i;:::-;4340:77;;4257:167;;;:::o;5772:87::-;5812:13;5844:8;5837:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5772:87;:::o;738:68:1:-;779:27;;;;;;;;;;;;;;;;;;;738:68;:::o;3989:211:11:-;4053:7;4097:1;4080:19;;:5;:19;;;;4072:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4164:29;:13;:20;4178:5;4164:20;;;;;;;;;;;;;;;:27;:29::i;:::-;4157:36;;3989:211;;;:::o;1689:145:6:-;1280:12;:10;:12::i;:::-;1270:22;;:6;;;;;;;;;;;:22;;;1262:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1795:1:::1;1758:40;;1779:6;::::0;::::1;;;;;;;;;1758:40;;;;;;;;;;;;1825:1;1808:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1689:145::o:0;2205:140:1:-;2245:32;848:24;;;;;;;;;;;;;;;;;;;2266:10;2245:7;:32::i;:::-;2237:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2332:8;:6;:8::i;:::-;2205:140::o;1066:77:6:-;1104:7;1130:6;;;;;;;;;;;1123:13;;1066:77;:::o;3955:136:5:-;4028:7;4054:30;4078:5;4054:6;:12;4061:4;4054:12;;;;;;;;;;;:20;;:23;;:30;;;;:::i;:::-;4047:37;;3955:136;;;;:::o;2940:137::-;3009:4;3032:38;3062:7;3032:6;:12;3039:4;3032:12;;;;;;;;;;;:20;;:29;;:38;;;;:::i;:::-;3025:45;;2940:137;;;;:::o;4640:94:11:-;4688:13;4720:7;4713:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4640:94;:::o;1717:49:5:-;1762:4;1717:49;;;:::o;7369:290:11:-;7483:12;:10;:12::i;:::-;7471:24;;:8;:24;;;;7463:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7581:8;7536:18;:32;7555:12;:10;:12::i;:::-;7536:32;;;;;;;;;;;;;;;:42;7569:8;7536:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;7633:8;7604:48;;7619:12;:10;:12::i;:::-;7604:48;;;7643:8;7604:48;;;;;;;;;;;;;;;;;;;;;;7369:290;;:::o;3654:115:0:-;3720:13;1346:7:21;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3748:9:0::1;:16;;;;3741:23;;3654:115:::0;:::o;8522:282:11:-;8653:41;8672:12;:10;:12::i;:::-;8686:7;8653:18;:41::i;:::-;8645:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8758:39;8772:4;8778:2;8782:7;8791:5;8758:13;:39::i;:::-;8522:282;;;;:::o;4800:740::-;4865:13;4898:16;4906:7;4898;:16::i;:::-;4890:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4977:23;5003:10;:19;5014:7;5003:19;;;;;;;;;;;4977:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5121:1;5101:8;5095:22;;;;;;;;;;;;;;;;:27;5091:74;;;5145:9;5138:16;;;;;5091:74;5293:1;5273:9;5267:23;:27;5263:110;;;5341:8;5351:9;5324:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5310:52;;;;;5263:110;5503:8;5513:18;:7;:16;:18::i;:::-;5486:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5472:61;;;4800:740;;;;:::o;3245:125:5:-;3308:7;3334:29;:6;:12;3341:4;3334:12;;;;;;;;;;;:20;;:27;:29::i;:::-;3327:36;;3245:125;;;:::o;4063:481:0:-;4207:4;1230:35:1;779:27;;;;;;;;;;;;;;;;;;;1254:10;1230:7;:35::i;:::-;1222:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1346:7:21::1;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;4220:33:0::2;;:::i;:::-;4256:120;;;;;;;;4285:4;;4256:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4337:11;;4256:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4364:5;;4256:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4305:10;4256:120;;;;::::0;4220:156:::2;;4382:9;4397:12;4382:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4416:19;4438:23;4459:1;4438:9;:16;;;;:20;;:23;;;;:::i;:::-;4416:45;;4472:50;4484:11;4497:4;;4503:11;;4516:5;;4472:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4535:4;4528:11;;;;4063:481:::0;;;;;;;;:::o;5652:830::-;5779:4;1346:7:21;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5818:10:0::1;5799:9;:16;;;;:29;5791:66;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;5907:1;5871:8;:20;5880:10;5871:20;;;;;;;;;;;:32;5892:10;5871:32;;;;;;;;;;;;;;;;:37;5863:74;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;5951:5;:12;;;5964:10;5976;5951:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;:118;;;;5991:78;6004:5;:11;;;6016:10;6004:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;6056:10;6039:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6029:39;;;;;;5991:5;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:78;;;;;:::i;:::-;5951:118;5943:155;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;6187:10;6142:15;:42;6158:25;:15;:23;:25::i;:::-;6142:42;;;;;;;;;;;:55;;;;6237:38;6273:1;6237:19;:31;6257:10;6237:31;;;;;;;;;;;;:35;;:38;;;;:::i;:::-;6203:19;:31;6223:10;6203:31;;;;;;;;;;;:72;;;;6316:1;6281:8;:20;6290:10;6281:20;;;;;;;;;;;:32;6302:10;6281:32;;;;;;;;;;;;;;;:36;;;;6332:39;6350:10;6362:8;;6332:17;:39::i;:::-;6324:76;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;6412:48;6427:10;6439;6451:8;;6412:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6473:4;6466:11;;5652:830:::0;;;;;;;:::o;5091:226:5:-;5175:45;5183:6;:12;5190:4;5183:12;;;;;;;;;;;:22;;;5207:12;:10;:12::i;:::-;5175:7;:45::i;:::-;5167:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5284:26;5296:4;5302:7;5284:11;:26::i;:::-;5091:226;;:::o;810:62:1:-;848:24;;;;;;;;;;;;;;;;;;;810:62;:::o;1527:201::-;1590:4;1103:39;1762:4:5;1111:18:1;;1131:10;1103:7;:39::i;:::-;1095:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1611:28:::1;779:27;;;;;;;::::0;::::1;;;;;;;;;;;1635:3;1611:7;:28::i;:::-;1610:29;1602:68;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;1676:30;779:27;;;;;;;::::0;::::1;;;;;;;;;;;1702:3;1676:9;:30::i;:::-;1719:4;1712:11;;1527:201:::0;;;:::o;7725:154:11:-;7814:4;7837:18;:25;7856:5;7837:25;;;;;;;;;;;;;;;:35;7863:8;7837:35;;;;;;;;;;;;;;;;;;;;;;;;;7830:42;;7725:154;;;;:::o;1983:240:6:-;1280:12;:10;:12::i;:::-;1270:22;;:6;;;;;;;;;;;:22;;;1262:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2091:1:::1;2071:22;;:8;:22;;;;2063:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2180:8;2151:38;;2172:6;::::0;::::1;;;;;;;;;2151:38;;;;;;;;;;;;2208:8;2199:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1983:240:::0;:::o;4864:141:20:-;4934:4;4957:41;4962:3;:10;;4990:5;4982:14;;4974:23;;4957:4;:41::i;:::-;4950:48;;4864:141;;;;:::o;10237:117:11:-;10294:4;10317:30;10339:7;10317:12;:21;;:30;;;;:::i;:::-;10310:37;;10237:117;;;:::o;590:104:4:-;643:15;677:10;670:17;;590:104;:::o;15893:155:11:-;15985:2;15958:15;:24;15974:7;15958:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;16033:7;16029:2;16002:39;;16011:16;16019:7;16011;:16::i;:::-;16002:39;;;;;;;;;;;;15893:155;;:::o;7023:121:19:-;7092:7;7118:19;7126:3;:10;;7118:7;:19::i;:::-;7111:26;;7023:121;;;:::o;10512:329:11:-;10597:4;10621:16;10629:7;10621;:16::i;:::-;10613:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10696:13;10712:16;10720:7;10712;:16::i;:::-;10696:32;;10757:5;10746:16;;:7;:16;;;:51;;;;10790:7;10766:31;;:20;10778:7;10766:11;:20::i;:::-;:31;;;10746:51;:87;;;;10801:32;10818:5;10825:7;10801:16;:32::i;:::-;10746:87;10738:96;;;10512:329;;;;:::o;7074:180:0:-;7168:5;7160:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7215:34;7231:4;7237:2;7241:7;7215:15;:34::i;:::-;7074:180;;;:::o;7015:184:5:-;7088:33;7113:7;7088:6;:12;7095:4;7088:12;;;;;;;;;;;:20;;:24;;:33;;;;:::i;:::-;7084:109;;;7169:12;:10;:12::i;:::-;7142:40;;7160:7;7142:40;;7154:4;7142:40;;;;;;;;;;7084:109;7015:184;;:::o;7649:135:20:-;7720:7;7754:22;7758:3;:10;;7770:5;7754:3;:22::i;:::-;7746:31;;7739:38;;7649:135;;;;:::o;7205:188:5:-;7279:36;7307:7;7279:6;:12;7286:4;7279:12;;;;;;;;;;;:20;;:27;;:36;;;;:::i;:::-;7275:112;;;7363:12;:10;:12::i;:::-;7336:40;;7354:7;7336:40;;7348:4;7336:40;;;;;;;;;;7275:112;7205:188;;:::o;2042:117:21:-;1610:7;;;;;;;;;;;1602:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2110:5:::1;2100:7;;:15;;;;;;;;;;;;;;;;;;2130:22;2139:12;:10;:12::i;:::-;2130:22;;;;;;;;;;;;;;;;;;;;;;2042:117::o:0;12680:502:11:-;12739:13;12755:16;12763:7;12755;:16::i;:::-;12739:32;;12782:48;12803:5;12818:1;12822:7;12782:20;:48::i;:::-;12868:29;12885:1;12889:7;12868:8;:29::i;:::-;12984:1;12953:10;:19;12964:7;12953:19;;;;;;;;;;;12947:33;;;;;;;;;;;;;;;;:38;12943:95;;13008:10;:19;13019:7;13008:19;;;;;;;;;;;;13001:26;;;;:::i;:::-;12943:95;13048:36;13076:7;13048:13;:20;13062:5;13048:20;;;;;;;;;;;;;;;:27;;:36;;;;:::i;:::-;;13095:28;13115:7;13095:12;:19;;:28;;;;:::i;:::-;;13167:7;13163:1;13139:36;;13148:5;13139:36;;;;;;;;;;;;12680:502;;:::o;7472:224:19:-;7552:7;7561;7581:11;7594:13;7611:22;7615:3;:10;;7627:5;7611:3;:22::i;:::-;7580:53;;;;7659:3;7651:12;;7681:5;7673:14;;7643:46;;;;;;;;;7472:224;;;;;:::o;1321:134:10:-;1379:7;1405:43;1409:1;1412;1405:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1398:50;;1321:134;;;;:::o;14647:98:11:-;14730:8;14719;:19;;;;;;;;;;;;:::i;:::-;;14647:98;:::o;8115:202:19:-;8222:7;8264:44;8269:3;:10;;8289:3;8281:12;;8295;8264:4;:44::i;:::-;8256:53;;8241:69;;8115:202;;;;;:::o;7205:112:20:-;7265:7;7291:19;7299:3;:10;;7291:7;:19::i;:::-;7284:26;;7205:112;;;:::o;1795:115:21:-;1346:7;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1864:4:::1;1854:7;;:14;;;;;;;;;;;;;;;;;;1883:20;1890:12;:10;:12::i;:::-;1883:20;;;;;;;;;;;;;;;;;;;;;;1795:115::o:0;6085:147:20:-;6159:7;6201:22;6205:3;:10;;6217:5;6201:3;:22::i;:::-;6193:31;;6178:47;;6085:147;;;;:::o;5401:156::-;5481:4;5504:46;5514:3;:10;;5542:5;5534:14;;5526:23;;5504:9;:46::i;:::-;5497:53;;5401:156;;;;:::o;9665:269:11:-;9778:28;9788:4;9794:2;9798:7;9778:9;:28::i;:::-;9824:48;9847:4;9853:2;9857:7;9866:5;9824:22;:48::i;:::-;9816:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9665:269;;;;:::o;202:723:22:-;258:13;484:1;475:5;:10;471:51;;;501:10;;;;;;;;;;;;;;;;;;;;;471:51;531:12;546:5;531:20;;561:14;585:75;600:1;592:4;:9;585:75;;617:8;;;;;;;647:2;639:10;;;;;;;;;585:75;;;669:19;701:6;691:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;669:39;;718:13;743:1;734:6;:10;718:26;;761:5;754:12;;776:112;791:1;783:4;:9;776:112;;849:2;842:4;:9;;;;;;837:2;:14;826:27;;808:6;815:7;;;;;;;808:15;;;;;;;;;;;:45;;;;;;;;;;;875:2;867:10;;;;;;;;;776:112;;;911:6;897:21;;;;;;202:723;;;;:::o;5638:115:20:-;5701:7;5727:19;5735:3;:10;;5727:7;:19::i;:::-;5720:26;;5638:115;;;:::o;497:779:7:-;588:4;604:20;627:4;604:27;;647:9;659:1;647:13;;642:515;666:5;:12;662:1;:16;642:515;;;699:20;722:5;728:1;722:8;;;;;;;;;;;;;;699:31;;765:12;749;:28;745:402;;917:12;931;900:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;890:55;;;;;;875:70;;745:402;;;1104:12;1118;1087:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1077:55;;;;;;1062:70;;745:402;642:515;680:3;;;;;;;642:515;;;;1265:4;1249:12;:20;1242:27;;;497:779;;;;;:::o;1098:112:18:-;1163:7;1189;:14;;;1182:21;;1098:112;;;:::o;874:176:10:-;932:7;951:9;967:1;963;:5;951:17;;991:1;986;:6;;978:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1042:1;1035:8;;;874:176;;;;:::o;2681:240:0:-;2763:4;2775:36;2781:2;2785:25;:15;:23;:25::i;:::-;2775:5;:36::i;:::-;2817:49;2830:25;:15;:23;:25::i;:::-;2857:8;;2817:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:12;:49::i;:::-;2872:27;:15;:25;:27::i;:::-;2912:4;2905:11;;2681:240;;;;;:::o;1611:404:20:-;1674:4;1695:21;1705:3;1710:5;1695:9;:21::i;:::-;1690:319;;1732:3;:11;;1749:5;1732:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1912:3;:11;;:18;;;;1890:3;:12;;:19;1903:5;1890:19;;;;;;;;;;;:40;;;;1951:4;1944:11;;;;1690:319;1993:5;1986:12;;1611:404;;;;;:::o;6791:149:19:-;6875:4;6898:35;6908:3;:10;;6928:3;6920:12;;6898:9;:35::i;:::-;6891:42;;6791:149;;;;:::o;4483:108::-;4539:7;4565:3;:12;;:19;;;;4558:26;;4483:108;;;:::o;13506:559:11:-;13623:4;13603:24;;:16;13611:7;13603;:16::i;:::-;:24;;;13595:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13705:1;13691:16;;:2;:16;;;;13683:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13759:39;13780:4;13786:2;13790:7;13759:20;:39::i;:::-;13860:29;13877:1;13881:7;13860:8;:29::i;:::-;13900:35;13927:7;13900:13;:19;13914:4;13900:19;;;;;;;;;;;;;;;:26;;:35;;;;:::i;:::-;;13945:30;13967:7;13945:13;:17;13959:2;13945:17;;;;;;;;;;;;;;;:21;;:30;;;;:::i;:::-;;13986:29;14003:7;14012:2;13986:12;:16;;:29;;;;;:::i;:::-;;14050:7;14046:2;14031:27;;14040:4;14031:27;;;;;;;;;;;;13506:559;;;:::o;4423:201:20:-;4490:7;4538:5;4517:3;:11;;:18;;;;:26;4509:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4599:3;:11;;4611:5;4599:18;;;;;;;;;;;;;;;;4592:25;;4423:201;;;;:::o;5173:147::-;5246:4;5269:44;5277:3;:10;;5305:5;5297:14;;5289:23;;5269:7;:44::i;:::-;5262:51;;5173:147;;;;:::o;16644:93:11:-;;;;:::o;6764:135:20:-;6834:4;6857:35;6865:3;:10;;6885:5;6877:14;;6857:7;:35::i;:::-;6850:42;;6764:135;;;;:::o;6572:140:19:-;6649:4;6672:33;6680:3;:10;;6700:3;6692:12;;6672:7;:33::i;:::-;6665:40;;6572:140;;;;:::o;4934:274::-;5001:7;5010;5059:5;5037:3;:12;;:19;;;;:27;5029:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5114:22;5139:3;:12;;5152:5;5139:19;;;;;;;;;;;;;;;;;;5114:44;;5176:5;:10;;;5188:5;:12;;;5168:33;;;;;4934:274;;;;;:::o;1746:187:10:-;1832:7;1864:1;1859;:6;;1867:12;1851:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1890:9;1906:1;1902;:5;1890:17;;1925:1;1918:8;;;1746:187;;;;;:::o;5615:315:19:-;5709:7;5728:16;5747:3;:12;;:17;5760:3;5747:17;;;;;;;;;;;;5728:36;;5794:1;5782:8;:13;;5797:12;5774:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5863:3;:12;;5887:1;5876:8;:12;5863:26;;;;;;;;;;;;;;;;;;:33;;;5856:40;;;5615:315;;;;;:::o;3984:107:20:-;4040:7;4066:3;:11;;:18;;;;4059:25;;3984:107;;;:::o;3776:127::-;3849:4;3895:1;3872:3;:12;;:19;3885:5;3872:19;;;;;;;;;;;;:24;;3865:31;;3776:127;;;;:::o;15298:589:11:-;15418:4;15443:15;:2;:13;;;:15::i;:::-;15438:58;;15481:4;15474:11;;;;15438:58;15505:23;15531:246;15583:45;;;15642:12;:10;:12::i;:::-;15668:4;15686:7;15707:5;15547:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15531:246;;;;;;;;;;;;;;;;;:2;:15;;;;:246;;;;;:::i;:::-;15505:272;;15787:13;15814:10;15803:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15787:48;;1068:10;15863:16;;15853:26;;;:6;:26;;;;15845:35;;;;15298:589;;;;;;;:::o;12070:393::-;12163:1;12149:16;;:2;:16;;;;12141:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12221:16;12229:7;12221;:16::i;:::-;12220:17;12212:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12281:45;12310:1;12314:2;12318:7;12281:20;:45::i;:::-;12337:30;12359:7;12337:13;:17;12351:2;12337:17;;;;;;;;;;;;;;;:21;;:30;;;;:::i;:::-;;12378:29;12395:7;12404:2;12378:12;:16;;:29;;;;;:::i;:::-;;12448:7;12444:2;12423:33;;12440:1;12423:33;;;;;;;;;;;;12070:393;;:::o;14212:212::-;14311:16;14319:7;14311;:16::i;:::-;14303:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14408:9;14386:10;:19;14397:7;14386:19;;;;;;;;;;;:31;;;;;;;;;;;;:::i;:::-;;14212:212;;:::o;1216:178:18:-;1386:1;1368:7;:14;;;:19;;;;;;;;;;;1216:178;:::o;4270:123:19:-;4341:4;4385:1;4364:3;:12;;:17;4377:3;4364:17;;;;;;;;;;;;:22;;4357:29;;4270:123;;;;:::o;6467:129:20:-;6534:4;6557:32;6562:3;:10;;6582:5;6574:14;;6557:4;:32::i;:::-;6550:39;;6467:129;;;;:::o;6239:174:19:-;6328:4;6351:55;6356:3;:10;;6376:3;6368:12;;6398:5;6390:14;;6382:23;;6351:4;:55::i;:::-;6344:62;;6239:174;;;;;:::o;2183:1512:20:-;2249:4;2365:18;2386:3;:12;;:19;2399:5;2386:19;;;;;;;;;;;;2365:40;;2434:1;2420:10;:15;2416:1273;;2777:21;2814:1;2801:10;:14;2777:38;;2829:17;2870:1;2849:3;:11;;:18;;;;:22;2829:42;;3111:17;3131:3;:11;;3143:9;3131:22;;;;;;;;;;;;;;;;3111:42;;3274:9;3245:3;:11;;3257:13;3245:26;;;;;;;;;;;;;;;:38;;;;3391:1;3375:13;:17;3349:3;:12;;:23;3362:9;3349:23;;;;;;;;;;;:43;;;;3498:3;:11;;:17;;;;;;;;;;;;;;;;;;;;;;;;3590:3;:12;;:19;3603:5;3590:19;;;;;;;;;;;3583:26;;;3631:4;3624:11;;;;;;;;2416:1273;3673:5;3666:12;;;2183:1512;;;;;:::o;2674:1517:19:-;2738:4;2852:16;2871:3;:12;;:17;2884:3;2871:17;;;;;;;;;;;;2852:36;;2915:1;2903:8;:13;2899:1286;;3259:21;3294:1;3283:8;:12;3259:36;;3309:17;3351:1;3329:3;:12;;:19;;;;:23;3309:43;;3592:26;3621:3;:12;;3634:9;3621:23;;;;;;;;;;;;;;;;;;3592:52;;3766:9;3736:3;:12;;3749:13;3736:27;;;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;;3888:1;3872:13;:17;3841:3;:12;;:28;3854:9;:14;;;3841:28;;;;;;;;;;;:48;;;;3995:3;:12;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4088:3;:12;;:17;4101:3;4088:17;;;;;;;;;;;4081:24;;;4127:4;4120:11;;;;;;;;2899:1286;4169:5;4162:12;;;2674:1517;;;;;:::o;718:610:17:-;778:4;1036:16;1062:19;1084:66;1062:88;;;;1251:7;1239:20;1227:32;;1290:11;1278:8;:23;;:42;;;;;1317:3;1305:15;;:8;:15;;1278:42;1270:51;;;;718:610;;;:::o;3770:194::-;3873:12;3904:53;3927:6;3935:4;3941:1;3944:12;3904:22;:53::i;:::-;3897:60;;3770:194;;;;;:::o;1828:678:19:-;1904:4;2018:16;2037:3;:12;;:17;2050:3;2037:17;;;;;;;;;;;;2018:36;;2081:1;2069:8;:13;2065:435;;;2135:3;:12;;2153:38;;;;;;;;2170:3;2153:38;;;;2183:5;2153:38;;;2135:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2347:3;:12;;:19;;;;2327:3;:12;;:17;2340:3;2327:17;;;;;;;;;;;:39;;;;2387:4;2380:11;;;;;2065:435;2458:5;2422:3;:12;;2446:1;2435:8;:12;2422:26;;;;;;;;;;;;;;;;;;:33;;:41;;;;2484:5;2477:12;;;1828:678;;;;;;:::o;5117:958:17:-;5247:12;5279:18;5290:6;5279:10;:18::i;:::-;5271:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5402:12;5416:23;5443:6;:11;;5463:8;5474:4;5443:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5401:78;;;;5493:7;5489:580;;;5523:10;5516:17;;;;;;5489:580;5654:1;5634:10;:17;:21;5630:429;;;5892:10;5886:17;5952:15;5939:10;5935:2;5931:19;5924:44;5841:145;6031:12;6024:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5117:958;;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "/// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.6.10;\n\n/// @title Non-transferable Badges for Maker Ecosystem Activity, CDIP 18\n/// @author Nazzareno Massari @naszam\n/// @notice BadgeFactory to manage Templates and activate Non-transferable Badges by redeemers\n/// @dev See https://github.com/makerdao/community/issues/537\n/// @dev All function calls are currently implemented without side effects through TDD approach\n/// @dev OpenZeppelin library is used for secure contract development\n\nimport \"./BadgeRoles.sol\";\nimport \"@openzeppelin/contracts/utils/Counters.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/ERC721Burnable.sol\";\nimport \"@openzeppelin/contracts/cryptography/MerkleProof.sol\";\n\n\ninterface MakerBadgesLike {\n\n function verify(uint256 templateId, address guy) external view returns (bool);\n function roots(uint256 templateId) external view returns (bytes32);\n\n}\n\ncontract BadgeFactory is BadgeRoles, ERC721Burnable {\n\n /// @dev Libraries\n using SafeMath for uint256;\n using Counters for Counters.Counter;\n using MerkleProof for bytes32[];\n\n Counters.Counter private _tokenIdTracker;\n\n MakerBadgesLike internal immutable maker;\n\n mapping (uint256 => mapping (address => uint256)) public redeemed;\n\n /// @dev Events\n event NewTemplate(uint256 templateId, string name, string description, string image);\n event BadgeActivated(address redeemer, uint256 templateId, string tokenURI);\n\n struct BadgeTemplate {\n string name;\n string description;\n string image;\n address owner;\n }\n\n BadgeTemplate[] private templates;\n\n /// @dev Supplies of each badge template\n mapping(uint256 => uint256) private _templateQuantities;\n mapping(uint256 => uint256) private _tokenTemplates;\n\n constructor(address maker_)\n ERC721(\"MakerBadges\", \"MAKER\")\n public\n {\n _setBaseURI(\"https://badges.makerdao.com/token/\");\n maker = MakerBadgesLike(maker_);\n\n }\n\n /// @notice Fallback function\n /// @dev Added not payable to revert transactions not matching any other function which send value\n fallback() external {\n revert();\n }\n\n /// @notice Set the baseURI\n /// @dev Update the baseURI specified in the constructor\n /// @param baseURI New baseURI\n /// @return True if the new baseURI is set\n function setBaseURI(string calldata baseURI) external onlyOwner returns (bool) {\n _setBaseURI(baseURI);\n return true;\n }\n\n /// @notice Mint new token with tokenURI\n /// @dev Use an auto-generated tokenId\n /// @dev automatically concatenate baseURI with tokenURI via abi.encodePacked\n /// @param to owner of the new token\n /// @param tokenURI an .json filename\n /// @return True if the new token is minted\n function _mintWithTokenURI(address to, string calldata tokenURI) private returns (bool) {\n _mint(to, _tokenIdTracker.current());\n _setTokenURI(_tokenIdTracker.current(), tokenURI);\n _tokenIdTracker.increment();\n return true;\n }\n\n /// @notice Getter function for templates\n /// @dev Check if templateId exists\n /// @param templateId Template Id of the template to return\n /// @return name description image Of the specified templateId\n function getTemplate(uint256 templateId) external view whenNotPaused returns (string memory name, string memory description, string memory image) {\n require(templates.length > templateId, \"No template with that id\");\n BadgeTemplate memory template = templates[templateId];\n return (template.name, template.description, template.image);\n }\n\n\n /// @dev Templates\n\n /// @notice Getter function for templates count\n /// @dev Return lenght of template array\n /// @return count The current number of templates\n function getTemplatesCount() external view whenNotPaused returns (uint256 count) {\n return templates.length;\n }\n\n /// @notice Create a new template\n /// @dev Access restricted to only Templaters\n /// @param name The name of the new template\n /// @param description A description of the new template\n /// @param image A filename of the new template\n /// @return True If the new Template is Created\n function createTemplate(string calldata name, string calldata description, string calldata image) external onlyTemplater whenNotPaused returns (bool) {\n\n BadgeTemplate memory _newTemplate = BadgeTemplate({\n name: name,\n owner: msg.sender,\n description: description,\n image: image\n });\n templates.push(_newTemplate);\n uint256 _templateId = templates.length.sub(1);\n emit NewTemplate(_templateId, name, description, image);\n return true;\n }\n\n /// @dev Badges\n\n /// @notice Getter function for templateId associated with the tokenId\n /// @dev Check if the tokenId exists\n /// @param tokenId Token Id of the Badge\n /// @return Template Id associated with the tokenId\n function getBadgeTemplate(uint256 tokenId) public view whenNotPaused returns (uint256) {\n require(_exists(tokenId), \"ERC721: No token with that id\");\n return _tokenTemplates[tokenId];\n }\n\n /// @notice Getter function for number of badges associated with templateId\n /// @dev Check if the template Id exists\n /// @param templateId Template Id\n /// @return Quantity of Badges associated with templateId\n function getBadgeTemplateQuantity(uint256 templateId) external view whenNotPaused returns (uint256) {\n require(templates.length > templateId, \"No template with that id\");\n return _templateQuantities[templateId];\n }\n\n /// @notice Activate Badge by redeemers\n /// @dev Verify if the caller is a redeemer\n /// @param proof Merkle Proof\n /// @param templateId Template Id\n /// @param tokenURI Token URI\n /// @return True If the new Badge is Activated\n function activateBadge(bytes32[] calldata proof, uint256 templateId, string calldata tokenURI) external whenNotPaused returns (bool) {\n require(templates.length > templateId, \"No template with that id\");\n require(redeemed[templateId][msg.sender] == 0, \"Badge already activated!\");\n require(maker.verify(templateId, msg.sender) || proof.verify(maker.roots(templateId), keccak256(abi.encodePacked(msg.sender))), \"Caller is not a redeemer\");\n\n /// @dev Increase the quantities\n _tokenTemplates[_tokenIdTracker.current()] = templateId;\n _templateQuantities[templateId] = _templateQuantities[templateId].add(1);\n redeemed[templateId][msg.sender] = 1;\n\n require(_mintWithTokenURI(msg.sender, tokenURI), \"ERC721: Token not minted\");\n\n emit BadgeActivated(msg.sender, templateId, tokenURI);\n return true;\n }\n\n /// @notice Burn Badge\n /// @dev burn() Check if the caller is approved or owner of the Badge\n /// @param tokenId Token Id of the Badge to burn\n /// @return True if the Badge has been burned\n function burnBadge(uint256 tokenId) external whenNotPaused returns (bool){\n uint256 templateId = getBadgeTemplate(tokenId);\n _templateQuantities[templateId] = _templateQuantities[templateId].sub(1);\n burn(tokenId);\n return true;\n }\n\n /// @notice ERC721 _transfer() Disabled\n /// @dev _transfer() has been overriden\n /// @dev reverts on transferFrom() and safeTransferFrom()\n function _transfer(address from, address to, uint256 tokenId) internal override {\n require(false, \"ERC721: token transfer disabled\");\n super._transfer(from, to, tokenId);\n }\n\n}\n", + "source": "/// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.6.11;\n\n/// @title Non-transferable Badges for Maker Ecosystem Activity, CDIP 18\n/// @author Nazzareno Massari @naszam\n/// @notice BadgeFactory to manage Templates and activate Non-transferable Badges by redeemers\n/// @dev See https://github.com/makerdao/community/issues/537\n/// @dev All function calls are currently implemented without side effects through TDD approach\n/// @dev OpenZeppelin library is used for secure contract development\n\nimport \"./BadgeRoles.sol\";\nimport \"@openzeppelin/contracts/utils/Counters.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/ERC721Burnable.sol\";\nimport \"@openzeppelin/contracts/cryptography/MerkleProof.sol\";\n\n\ninterface MakerBadgesLike {\n\n function verify(uint256 templateId, address guy) external view returns (bool);\n function roots(uint256 templateId) external view returns (bytes32);\n\n}\n\ncontract BadgeFactory is BadgeRoles, ERC721Burnable {\n\n /// @dev Libraries\n using SafeMath for uint256;\n using Counters for Counters.Counter;\n using MerkleProof for bytes32[];\n\n Counters.Counter private _tokenIdTracker;\n\n MakerBadgesLike internal immutable maker;\n\n mapping (uint256 => mapping (address => uint256)) public redeemed;\n\n /// @dev Events\n event NewTemplate(uint256 templateId, string name, string description, string image);\n event BadgeActivated(address redeemer, uint256 templateId, string tokenURI);\n\n struct BadgeTemplate {\n string name;\n string description;\n string image;\n address owner;\n }\n\n BadgeTemplate[] private templates;\n\n /// @dev Supplies of each badge template\n mapping(uint256 => uint256) private _templateQuantities;\n mapping(uint256 => uint256) private _tokenTemplates;\n\n constructor(address maker_)\n ERC721(\"MakerBadges\", \"MAKER\")\n public\n {\n _setBaseURI(\"https://badges.makerdao.com/token/\");\n maker = MakerBadgesLike(maker_);\n\n }\n\n /// @notice Fallback function\n /// @dev Added not payable to revert transactions not matching any other function which send value\n fallback() external {\n revert();\n }\n\n /// @notice Set the baseURI\n /// @dev Update the baseURI specified in the constructor\n /// @param baseURI New baseURI\n /// @return True if the new baseURI is set\n function setBaseURI(string calldata baseURI) external onlyOwner returns (bool) {\n _setBaseURI(baseURI);\n return true;\n }\n\n /// @notice Mint new token with tokenURI\n /// @dev Use an auto-generated tokenId\n /// @dev automatically concatenate baseURI with tokenURI via abi.encodePacked\n /// @param to owner of the new token\n /// @param tokenURI an .json filename\n /// @return True if the new token is minted\n function _mintWithTokenURI(address to, string calldata tokenURI) private returns (bool) {\n _mint(to, _tokenIdTracker.current());\n _setTokenURI(_tokenIdTracker.current(), tokenURI);\n _tokenIdTracker.increment();\n return true;\n }\n\n /// @notice Getter function for templates\n /// @dev Check if templateId exists\n /// @param templateId Template Id of the template to return\n /// @return name description image Of the specified templateId\n function getTemplate(uint256 templateId) external view whenNotPaused returns (string memory name, string memory description, string memory image) {\n require(templates.length > templateId, \"No template with that id\");\n BadgeTemplate memory template = templates[templateId];\n return (template.name, template.description, template.image);\n }\n\n\n /// @dev Templates\n\n /// @notice Getter function for templates count\n /// @dev Return lenght of template array\n /// @return count The current number of templates\n function getTemplatesCount() external view whenNotPaused returns (uint256 count) {\n return templates.length;\n }\n\n /// @notice Create a new template\n /// @dev Access restricted to only Templaters\n /// @param name The name of the new template\n /// @param description A description of the new template\n /// @param image A filename of the new template\n /// @return True If the new Template is Created\n function createTemplate(string calldata name, string calldata description, string calldata image) external onlyTemplater whenNotPaused returns (bool) {\n\n BadgeTemplate memory _newTemplate = BadgeTemplate({\n name: name,\n owner: msg.sender,\n description: description,\n image: image\n });\n templates.push(_newTemplate);\n uint256 _templateId = templates.length.sub(1);\n emit NewTemplate(_templateId, name, description, image);\n return true;\n }\n\n /// @dev Badges\n\n /// @notice Getter function for templateId associated with the tokenId\n /// @dev Check if the tokenId exists\n /// @param tokenId Token Id of the Badge\n /// @return Template Id associated with the tokenId\n function getBadgeTemplate(uint256 tokenId) public view whenNotPaused returns (uint256) {\n require(_exists(tokenId), \"ERC721: No token with that id\");\n return _tokenTemplates[tokenId];\n }\n\n /// @notice Getter function for number of badges associated with templateId\n /// @dev Check if the template Id exists\n /// @param templateId Template Id\n /// @return Quantity of Badges associated with templateId\n function getBadgeTemplateQuantity(uint256 templateId) external view whenNotPaused returns (uint256) {\n require(templates.length > templateId, \"No template with that id\");\n return _templateQuantities[templateId];\n }\n\n /// @notice Activate Badge by redeemers\n /// @dev Verify if the caller is a redeemer\n /// @param proof Merkle Proof\n /// @param templateId Template Id\n /// @param tokenURI Token URI\n /// @return True If the new Badge is Activated\n function activateBadge(bytes32[] calldata proof, uint256 templateId, string calldata tokenURI) external whenNotPaused returns (bool) {\n require(templates.length > templateId, \"No template with that id\");\n require(redeemed[templateId][msg.sender] == 0, \"Badge already activated!\");\n require(maker.verify(templateId, msg.sender) || proof.verify(maker.roots(templateId), keccak256(abi.encodePacked(msg.sender))), \"Caller is not a redeemer\");\n\n /// @dev Increase the quantities\n _tokenTemplates[_tokenIdTracker.current()] = templateId;\n _templateQuantities[templateId] = _templateQuantities[templateId].add(1);\n redeemed[templateId][msg.sender] = 1;\n\n require(_mintWithTokenURI(msg.sender, tokenURI), \"ERC721: Token not minted\");\n\n emit BadgeActivated(msg.sender, templateId, tokenURI);\n return true;\n }\n\n /// @notice Burn Badge\n /// @dev burn() Check if the caller is approved or owner of the Badge\n /// @param tokenId Token Id of the Badge to burn\n /// @return True if the Badge has been burned\n function burnBadge(uint256 tokenId) external whenNotPaused returns (bool){\n uint256 templateId = getBadgeTemplate(tokenId);\n _templateQuantities[templateId] = _templateQuantities[templateId].sub(1);\n burn(tokenId);\n return true;\n }\n\n /// @notice ERC721 _transfer() Disabled\n /// @dev _transfer() has been overriden\n /// @dev reverts on transferFrom() and safeTransferFrom()\n function _transfer(address from, address to, uint256 tokenId) internal override {\n require(false, \"ERC721: token transfer disabled\");\n super._transfer(from, to, tokenId);\n }\n\n}\n", "sourcePath": "/home/sencha/maker-badges/contracts/BadgeFactory.sol", "ast": { "absolutePath": "/home/sencha/maker-badges/contracts/BadgeFactory.sol", @@ -1146,7 +1146,7 @@ "literals": [ "solidity", "0.6", - ".10" + ".11" ], "nodeType": "PragmaDirective", "src": "37:23:0" @@ -1168,7 +1168,7 @@ "id": 3, "nodeType": "ImportDirective", "scope": 475, - "sourceUnit": 3271, + "sourceUnit": 3302, "src": "524:52:0", "symbolAliases": [], "unitAlias": "" @@ -1179,7 +1179,7 @@ "id": 4, "nodeType": "ImportDirective", "scope": 475, - "sourceUnit": 2825, + "sourceUnit": 2856, "src": "577:65:0", "symbolAliases": [], "unitAlias": "" @@ -1190,7 +1190,7 @@ "id": 5, "nodeType": "ImportDirective", "scope": 475, - "sourceUnit": 1599, + "sourceUnit": 1630, "src": "643:62:0", "symbolAliases": [], "unitAlias": "" @@ -1444,10 +1444,10 @@ "id": 25, "name": "ERC721Burnable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2824, + "referencedDeclaration": 2855, "src": "933:14:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Burnable_$2824", + "typeIdentifier": "t_contract$_ERC721Burnable_$2855", "typeString": "contract ERC721Burnable" } }, @@ -1458,17 +1458,17 @@ ], "contractDependencies": [ 633, - 1135, - 1418, - 1527, - 1655, - 1667, - 2794, - 2824, - 2940, + 1166, + 1449, + 1558, + 1686, + 1698, + 2825, + 2855, 2971, - 2998, - 4210 + 3002, + 3029, + 4241 ], "contractKind": "contract", "documentation": null, @@ -1476,18 +1476,18 @@ "id": 474, "linearizedBaseContracts": [ 474, - 2824, - 2794, + 2855, + 2825, + 3002, + 3029, 2971, - 2998, - 2940, - 1655, - 1667, + 1686, + 1698, 633, - 4210, - 1418, - 1527, - 1135 + 4241, + 1449, + 1558, + 1166 ], "name": "BadgeFactory", "nodeType": "ContractDefinition", @@ -1499,10 +1499,10 @@ "id": 27, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1863, + "referencedDeclaration": 1894, "src": "980:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1863", + "typeIdentifier": "t_contract$_SafeMath_$1894", "typeString": "library SafeMath" } }, @@ -1526,10 +1526,10 @@ "id": 30, "name": "Counters", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3270, + "referencedDeclaration": 3301, "src": "1010:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$3270", + "typeIdentifier": "t_contract$_Counters_$3301", "typeString": "library Counters" } }, @@ -1540,10 +1540,10 @@ "id": 31, "name": "Counters.Counter", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3230, + "referencedDeclaration": 3261, "src": "1023:16:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter" } } @@ -1555,10 +1555,10 @@ "id": 33, "name": "MerkleProof", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1598, + "referencedDeclaration": 1629, "src": "1049:11:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_MerkleProof_$1598", + "typeIdentifier": "t_contract$_MerkleProof_$1629", "typeString": "library MerkleProof" } }, @@ -1597,7 +1597,7 @@ "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage", + "typeIdentifier": "t_struct$_Counter_$3261_storage", "typeString": "struct Counters.Counter" }, "typeName": { @@ -1605,10 +1605,10 @@ "id": 37, "name": "Counters.Counter", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3230, + "referencedDeclaration": 3261, "src": "1079:16:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter" } }, @@ -2255,7 +2255,7 @@ "name": "_setBaseURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2702, + "referencedDeclaration": 2733, "src": "1811:11:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", @@ -2417,10 +2417,10 @@ "name": "ERC721", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2794, + "referencedDeclaration": 2825, "src": "1761:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721_$2794_$", + "typeIdentifier": "t_type$_t_contract$_ERC721_$2825_$", "typeString": "type(contract ERC721)" } }, @@ -2592,7 +2592,7 @@ "name": "_setBaseURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2702, + "referencedDeclaration": 2733, "src": "2335:11:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", @@ -2664,7 +2664,7 @@ "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, + "referencedDeclaration": 1507, "src": "2304:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -2791,7 +2791,7 @@ "referencedDeclaration": 38, "src": "2785:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage", + "typeIdentifier": "t_struct$_Counter_$3261_storage", "typeString": "struct Counters.Counter storage ref" } }, @@ -2802,10 +2802,10 @@ "lValueRequested": false, "memberName": "current", "nodeType": "MemberAccess", - "referencedDeclaration": 3241, + "referencedDeclaration": 3272, "src": "2785:23:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3230_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3230_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3261_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3261_storage_ptr_$", "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" } }, @@ -2840,7 +2840,7 @@ "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2530, + "referencedDeclaration": 2561, "src": "2775:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", @@ -2884,7 +2884,7 @@ "referencedDeclaration": 38, "src": "2830:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage", + "typeIdentifier": "t_struct$_Counter_$3261_storage", "typeString": "struct Counters.Counter storage ref" } }, @@ -2895,10 +2895,10 @@ "lValueRequested": false, "memberName": "current", "nodeType": "MemberAccess", - "referencedDeclaration": 3241, + "referencedDeclaration": 3272, "src": "2830:23:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3230_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3230_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3261_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3261_storage_ptr_$", "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" } }, @@ -2946,7 +2946,7 @@ "name": "_setTokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2691, + "referencedDeclaration": 2722, "src": "2817:12:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", @@ -2987,7 +2987,7 @@ "referencedDeclaration": 38, "src": "2872:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage", + "typeIdentifier": "t_struct$_Counter_$3261_storage", "typeString": "struct Counters.Counter storage ref" } }, @@ -2998,10 +2998,10 @@ "lValueRequested": false, "memberName": "increment", "nodeType": "MemberAccess", - "referencedDeclaration": 3253, + "referencedDeclaration": 3284, "src": "2872:25:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$3230_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$3230_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$3261_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$3261_storage_ptr_$", "typeString": "function (struct Counters.Counter storage pointer)" } }, @@ -3514,7 +3514,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "3189:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -3723,7 +3723,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "3697:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -4123,7 +4123,7 @@ "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1713, + "referencedDeclaration": 1744, "src": "4438:20:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -4319,7 +4319,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "4184:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -4503,7 +4503,7 @@ "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2387, + "referencedDeclaration": 2418, "src": "4877:7:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", @@ -4656,7 +4656,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "4831:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -4948,7 +4948,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "5258:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -5695,7 +5695,7 @@ "lValueRequested": false, "memberName": "verify", "nodeType": "MemberAccess", - "referencedDeclaration": 1597, + "referencedDeclaration": 1628, "src": "5991:12:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$bound_to$_t_array$_t_bytes32_$dyn_memory_ptr_$", @@ -5824,7 +5824,7 @@ "referencedDeclaration": 38, "src": "6158:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage", + "typeIdentifier": "t_struct$_Counter_$3261_storage", "typeString": "struct Counters.Counter storage ref" } }, @@ -5835,10 +5835,10 @@ "lValueRequested": false, "memberName": "current", "nodeType": "MemberAccess", - "referencedDeclaration": 3241, + "referencedDeclaration": 3272, "src": "6158:23:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3230_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3230_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3261_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3261_storage_ptr_$", "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" } }, @@ -6019,7 +6019,7 @@ "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1696, + "referencedDeclaration": 1727, "src": "6237:35:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -6473,7 +6473,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "5756:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -6849,7 +6849,7 @@ "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1713, + "referencedDeclaration": 1744, "src": "6847:35:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -6910,7 +6910,7 @@ "name": "burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2823, + "referencedDeclaration": 2854, "src": "6891:4:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", @@ -6982,7 +6982,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "6727:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -7074,7 +7074,7 @@ }, { "baseFunctions": [ - 2669 + 2700 ], "body": { "id": 472, @@ -7245,7 +7245,7 @@ "lValueRequested": false, "memberName": "_transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2669, + "referencedDeclaration": 2700, "src": "7215:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", @@ -7422,7 +7422,7 @@ "literals": [ "solidity", "0.6", - ".10" + ".11" ], "nodeType": "PragmaDirective", "src": "37:23:0" @@ -7444,7 +7444,7 @@ "id": 3, "nodeType": "ImportDirective", "scope": 475, - "sourceUnit": 3271, + "sourceUnit": 3302, "src": "524:52:0", "symbolAliases": [], "unitAlias": "" @@ -7455,7 +7455,7 @@ "id": 4, "nodeType": "ImportDirective", "scope": 475, - "sourceUnit": 2825, + "sourceUnit": 2856, "src": "577:65:0", "symbolAliases": [], "unitAlias": "" @@ -7466,7 +7466,7 @@ "id": 5, "nodeType": "ImportDirective", "scope": 475, - "sourceUnit": 1599, + "sourceUnit": 1630, "src": "643:62:0", "symbolAliases": [], "unitAlias": "" @@ -7720,10 +7720,10 @@ "id": 25, "name": "ERC721Burnable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2824, + "referencedDeclaration": 2855, "src": "933:14:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Burnable_$2824", + "typeIdentifier": "t_contract$_ERC721Burnable_$2855", "typeString": "contract ERC721Burnable" } }, @@ -7734,17 +7734,17 @@ ], "contractDependencies": [ 633, - 1135, - 1418, - 1527, - 1655, - 1667, - 2794, - 2824, - 2940, + 1166, + 1449, + 1558, + 1686, + 1698, + 2825, + 2855, 2971, - 2998, - 4210 + 3002, + 3029, + 4241 ], "contractKind": "contract", "documentation": null, @@ -7752,18 +7752,18 @@ "id": 474, "linearizedBaseContracts": [ 474, - 2824, - 2794, + 2855, + 2825, + 3002, + 3029, 2971, - 2998, - 2940, - 1655, - 1667, + 1686, + 1698, 633, - 4210, - 1418, - 1527, - 1135 + 4241, + 1449, + 1558, + 1166 ], "name": "BadgeFactory", "nodeType": "ContractDefinition", @@ -7775,10 +7775,10 @@ "id": 27, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1863, + "referencedDeclaration": 1894, "src": "980:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1863", + "typeIdentifier": "t_contract$_SafeMath_$1894", "typeString": "library SafeMath" } }, @@ -7802,10 +7802,10 @@ "id": 30, "name": "Counters", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3270, + "referencedDeclaration": 3301, "src": "1010:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$3270", + "typeIdentifier": "t_contract$_Counters_$3301", "typeString": "library Counters" } }, @@ -7816,10 +7816,10 @@ "id": 31, "name": "Counters.Counter", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3230, + "referencedDeclaration": 3261, "src": "1023:16:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter" } } @@ -7831,10 +7831,10 @@ "id": 33, "name": "MerkleProof", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1598, + "referencedDeclaration": 1629, "src": "1049:11:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_MerkleProof_$1598", + "typeIdentifier": "t_contract$_MerkleProof_$1629", "typeString": "library MerkleProof" } }, @@ -7873,7 +7873,7 @@ "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage", + "typeIdentifier": "t_struct$_Counter_$3261_storage", "typeString": "struct Counters.Counter" }, "typeName": { @@ -7881,10 +7881,10 @@ "id": 37, "name": "Counters.Counter", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3230, + "referencedDeclaration": 3261, "src": "1079:16:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter" } }, @@ -8531,7 +8531,7 @@ "name": "_setBaseURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2702, + "referencedDeclaration": 2733, "src": "1811:11:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", @@ -8693,10 +8693,10 @@ "name": "ERC721", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2794, + "referencedDeclaration": 2825, "src": "1761:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721_$2794_$", + "typeIdentifier": "t_type$_t_contract$_ERC721_$2825_$", "typeString": "type(contract ERC721)" } }, @@ -8868,7 +8868,7 @@ "name": "_setBaseURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2702, + "referencedDeclaration": 2733, "src": "2335:11:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", @@ -8940,7 +8940,7 @@ "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, + "referencedDeclaration": 1507, "src": "2304:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -9067,7 +9067,7 @@ "referencedDeclaration": 38, "src": "2785:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage", + "typeIdentifier": "t_struct$_Counter_$3261_storage", "typeString": "struct Counters.Counter storage ref" } }, @@ -9078,10 +9078,10 @@ "lValueRequested": false, "memberName": "current", "nodeType": "MemberAccess", - "referencedDeclaration": 3241, + "referencedDeclaration": 3272, "src": "2785:23:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3230_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3230_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3261_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3261_storage_ptr_$", "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" } }, @@ -9116,7 +9116,7 @@ "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2530, + "referencedDeclaration": 2561, "src": "2775:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", @@ -9160,7 +9160,7 @@ "referencedDeclaration": 38, "src": "2830:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage", + "typeIdentifier": "t_struct$_Counter_$3261_storage", "typeString": "struct Counters.Counter storage ref" } }, @@ -9171,10 +9171,10 @@ "lValueRequested": false, "memberName": "current", "nodeType": "MemberAccess", - "referencedDeclaration": 3241, + "referencedDeclaration": 3272, "src": "2830:23:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3230_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3230_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3261_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3261_storage_ptr_$", "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" } }, @@ -9222,7 +9222,7 @@ "name": "_setTokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2691, + "referencedDeclaration": 2722, "src": "2817:12:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", @@ -9263,7 +9263,7 @@ "referencedDeclaration": 38, "src": "2872:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage", + "typeIdentifier": "t_struct$_Counter_$3261_storage", "typeString": "struct Counters.Counter storage ref" } }, @@ -9274,10 +9274,10 @@ "lValueRequested": false, "memberName": "increment", "nodeType": "MemberAccess", - "referencedDeclaration": 3253, + "referencedDeclaration": 3284, "src": "2872:25:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$3230_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$3230_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$3261_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$3261_storage_ptr_$", "typeString": "function (struct Counters.Counter storage pointer)" } }, @@ -9790,7 +9790,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "3189:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -9999,7 +9999,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "3697:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -10399,7 +10399,7 @@ "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1713, + "referencedDeclaration": 1744, "src": "4438:20:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -10595,7 +10595,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "4184:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -10779,7 +10779,7 @@ "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2387, + "referencedDeclaration": 2418, "src": "4877:7:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", @@ -10932,7 +10932,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "4831:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -11224,7 +11224,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "5258:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -11971,7 +11971,7 @@ "lValueRequested": false, "memberName": "verify", "nodeType": "MemberAccess", - "referencedDeclaration": 1597, + "referencedDeclaration": 1628, "src": "5991:12:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$bound_to$_t_array$_t_bytes32_$dyn_memory_ptr_$", @@ -12100,7 +12100,7 @@ "referencedDeclaration": 38, "src": "6158:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage", + "typeIdentifier": "t_struct$_Counter_$3261_storage", "typeString": "struct Counters.Counter storage ref" } }, @@ -12111,10 +12111,10 @@ "lValueRequested": false, "memberName": "current", "nodeType": "MemberAccess", - "referencedDeclaration": 3241, + "referencedDeclaration": 3272, "src": "6158:23:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3230_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3230_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3261_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3261_storage_ptr_$", "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" } }, @@ -12295,7 +12295,7 @@ "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1696, + "referencedDeclaration": 1727, "src": "6237:35:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -12749,7 +12749,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "5756:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -13125,7 +13125,7 @@ "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1713, + "referencedDeclaration": 1744, "src": "6847:35:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -13186,7 +13186,7 @@ "name": "burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2823, + "referencedDeclaration": 2854, "src": "6891:4:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", @@ -13258,7 +13258,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "6727:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -13350,7 +13350,7 @@ }, { "baseFunctions": [ - 2669 + 2700 ], "body": { "id": 472, @@ -13521,7 +13521,7 @@ "lValueRequested": false, "memberName": "_transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2669, + "referencedDeclaration": 2700, "src": "7215:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", @@ -13681,7 +13681,7 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": { "42": { @@ -13939,14 +13939,20 @@ } }, "links": {}, - "address": "0xa6E83f554d9d2E744f6bDE70f55732361505e725", - "transactionHash": "0xd3589b7f0508d7ec475a362e03678eaa5f7c683977da2391121fde9cd646154c" + "address": "0x6C31CbF214422Ac810573BEe5F20c445200068dD", + "transactionHash": "0xfbb7cfb941d37be3e4c74ae77b6eb895eb3f94eab4282cc3fd050b53dcd818dc" } }, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-30T11:28:52.539Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:57:08.799Z", "networkType": "ethereum", "devdoc": { + "events": { + "NewTemplate(uint256,string,string,string)": { + "details": "Events" + } + }, + "kind": "dev", "methods": { "activateBadge(bytes32[],uint256,string)": { "details": "Verify if the caller is a redeemer", @@ -14137,9 +14143,11 @@ "_templateQuantities": { "details": "Supplies of each badge template" } - } + }, + "version": 1 }, "userdoc": { + "kind": "user", "methods": { "activateBadge(bytes32[],uint256,string)": { "notice": "Activate Badge by redeemers" @@ -14177,6 +14185,7 @@ "unpause()": { "notice": "Unpause all the functions" } - } + }, + "version": 1 } } \ No newline at end of file diff --git a/abi/BadgeRoles.json b/abi/BadgeRoles.json index 10f20c5..4b15c8b 100644 --- a/abi/BadgeRoles.json +++ b/abi/BadgeRoles.json @@ -404,13 +404,13 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAUSER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEMPLATER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"addTemplater\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"removeTemplater\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"addTemplater(address)\":{\"details\":\"Access restricted only for Admins\",\"params\":{\"guy\":\"Address of the new Templater\"},\"returns\":{\"_0\":\"True if the guy address is added as Templater\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"details\":\"the caller must have the 'PAUSER_ROLE'\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"removeTemplater(address)\":{\"details\":\"Access restricted only for Admins\",\"params\":{\"guy\":\"Address of the Templater\"},\"returns\":{\"_0\":\"True if the guy address is removed as Templater\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"details\":\"the caller must have the 'PAUSER_ROLE'\"}},\"stateVariables\":{\"TEMPLATER_ROLE\":{\"details\":\"Roles\"}}},\"userdoc\":{\"methods\":{\"addTemplater(address)\":{\"notice\":\"Add a new Templater\"},\"pause()\":{\"notice\":\"Pause all the functions\"},\"removeTemplater(address)\":{\"notice\":\"Remove a Templater\"},\"unpause()\":{\"notice\":\"Unpause all the functions\"}}}},\"settings\":{\"compilationTarget\":{\"/home/sencha/maker-badges/contracts/BadgeRoles.sol\":\"BadgeRoles\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/sencha/maker-badges/contracts/BadgeRoles.sol\":{\"keccak256\":\"0x272f85f9cb8e8d0e3bcc5e0b7269a777cf52ae93dfa4ac531eee8a5c6d2ae689\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://19add032eba97289f23395efe5dd3178c9d98b23e44bbdd0706615e554cca0dd\",\"dweb:/ipfs/QmXSMr9Ur3wVbWcVEchsmiBTtRQwyx4jti8W5EbjuZ4pGc\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x92f7900d382761c7faefeaced81c6b4f1aae909ed0551803bfe8f27101956360\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://407c0864143968542e5cf5aa7556916d2cf292b201e3dadb65662e9a3aa24187\",\"dweb:/ipfs/QmSnXzYAUaGLGr7uofRbgQraTJvatbjQLBPhyYiMd18oUJ\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c\",\"dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b50600062000024620001b360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000600260006101000a81548160ff021916908315150217905550620001016000801b620000f5620001bb60201b60201c565b620001e460201b60201c565b6200015760405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e01905060405180910390206200014b620001bb60201b60201c565b620001e460201b60201c565b620001ad60405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b0190506040518091039020620001a1620001bb60201b60201c565b620001e460201b60201c565b62000373565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620001f68282620001fa60201b60201c565b5050565b6200022981600160008581526020019081526020016000206000016200029e60201b6200101e1790919060201c565b156200029a576200023f620001b360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620002ce836000018373ffffffffffffffffffffffffffffffffffffffff1660001b620002d660201b60201c565b905092915050565b6000620002ea83836200035060201b60201c565b620003455782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506200034a565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b61179580620003836000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80638da5cb5b116100a2578063ca15c87311610071578063ca15c873146103f9578063d547741f1461043b578063e63ab1e914610489578063e6c0d714146104a7578063f2fde38b1461050357610116565b80638da5cb5b146102b35780639010d07c146102fd57806391d1485414610375578063a217fddf146103db57610116565b80634ba360ba116100e95780634ba360ba146102035780635c975abb1461025f5780636cdd0a1614610281578063715018a61461029f5780638456cb59146102a957610116565b8063248a9ca31461011b5780632f2ff15d1461015d57806336568abe146101ab5780633f4ba83a146101f9575b600080fd5b6101476004803603602081101561013157600080fd5b8101908080359060200190929190505050610547565b6040518082815260200191505060405180910390f35b6101a96004803603604081101561017357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610567565b005b6101f7600480360360408110156101c157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105f1565b005b61020161068a565b005b6102456004803603602081101561021957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610728565b604051808215151515815260200191505060405180910390f35b6102676108a2565b604051808215151515815260200191505060405180910390f35b6102896108b9565b6040518082815260200191505060405180910390f35b6102a76108f2565b005b6102b1610a7a565b005b6102bb610b18565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103336004803603604081101561031357600080fd5b810190808035906020019092919080359060200190929190505050610b41565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103c16004803603604081101561038b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b73565b604051808215151515815260200191505060405180910390f35b6103e3610ba5565b6040518082815260200191505060405180910390f35b6104256004803603602081101561040f57600080fd5b8101908080359060200190929190505050610bac565b6040518082815260200191505060405180910390f35b6104876004803603604081101561045157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bd3565b005b610491610c5d565b6040518082815260200191505060405180910390f35b6104e9600480360360208110156104bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c96565b604051808215151515815260200191505060405180910390f35b6105456004803603602081101561051957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e11565b005b600060016000838152602001908152602001600020600201549050919050565b61058e600160008481526020019081526020016000206002015461058961104e565b610b73565b6105e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611652602f913960400191505060405180910390fd5b6105ed8282611056565b5050565b6105f961104e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461067c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611731602f913960400191505060405180910390fd5b61068682826110ea565b5050565b6106c960405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902033610b73565b61071e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180611681602e913960400191505060405180910390fd5b61072661117e565b565b60006107376000801b33610b73565b6107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616c6c6572206973206e6f7420616e2061646d696e0000000000000000000081525060200191505060405180910390fd5b6107e860405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083610b73565b61085a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f677579206973206e6f7420612074656d706c617465720000000000000000000081525060200191505060405180910390fd5b61089960405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083610bd3565b60019050919050565b6000600260009054906101000a900460ff16905090565b60405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902081565b6108fa61104e565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ab960405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902033610b73565b610b0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611705602c913960400191505060405180910390fd5b610b16611287565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610b6b826001600086815260200190815260200160002060000161139190919063ffffffff16565b905092915050565b6000610b9d82600160008681526020019081526020016000206000016113ab90919063ffffffff16565b905092915050565b6000801b81565b6000610bcc600160008481526020019081526020016000206000016113db565b9050919050565b610bfa6001600084815260200190815260200160002060020154610bf561104e565b610b73565b610c4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806116d56030913960400191505060405180910390fd5b610c5982826110ea565b5050565b60405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902081565b6000610ca56000801b33610b73565b610d17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616c6c6572206973206e6f7420616e2061646d696e0000000000000000000081525060200191505060405180910390fd5b610d5660405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083610b73565b15610dc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f67757920697320616c726561647920612074656d706c6174657200000000000081525060200191505060405180910390fd5b610e0860405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083610567565b60019050919050565b610e1961104e565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806116af6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611046836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6113f0565b905092915050565b600033905090565b61107e816001600085815260200190815260200160002060000161101e90919063ffffffff16565b156110e65761108b61104e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b611112816001600085815260200190815260200160002060000161146090919063ffffffff16565b1561117a5761111f61104e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600260009054906101000a900460ff16611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600260006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61124461104e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600260009054906101000a900460ff161561130a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861134e61104e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60006113a08360000183611490565b60001c905092915050565b60006113d3836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611513565b905092915050565b60006113e982600001611536565b9050919050565b60006113fc8383611513565b61145557826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905061145a565b600090505b92915050565b6000611488836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611547565b905092915050565b6000818360000180549050116114f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806116306022913960400191505060405180910390fd5b82600001828154811061150057fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600081600001805490509050919050565b60008083600101600084815260200190815260200160002054905060008114611623576000600182039050600060018660000180549050039050600086600001828154811061159257fe5b90600052602060002001549050808760000184815481106115af57fe5b90600052602060002001819055506001830187600101600083815260200190815260200160002081905550866000018054806115e757fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050611629565b60009150505b9291505056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e744261646765466163746f72793a206d75737420686176652070617573657220726f6c6520746f20756e70617573654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b654261646765466163746f72793a206d75737420686176652070617573657220726f6c6520746f207061757365416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a26469706673582212203c74bb60ecdc3bf04ed0a42dfa3fe7285798bd297f1aefed79c59575b0af0f7664736f6c634300060a0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c80638da5cb5b116100a2578063ca15c87311610071578063ca15c873146103f9578063d547741f1461043b578063e63ab1e914610489578063e6c0d714146104a7578063f2fde38b1461050357610116565b80638da5cb5b146102b35780639010d07c146102fd57806391d1485414610375578063a217fddf146103db57610116565b80634ba360ba116100e95780634ba360ba146102035780635c975abb1461025f5780636cdd0a1614610281578063715018a61461029f5780638456cb59146102a957610116565b8063248a9ca31461011b5780632f2ff15d1461015d57806336568abe146101ab5780633f4ba83a146101f9575b600080fd5b6101476004803603602081101561013157600080fd5b8101908080359060200190929190505050610547565b6040518082815260200191505060405180910390f35b6101a96004803603604081101561017357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610567565b005b6101f7600480360360408110156101c157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105f1565b005b61020161068a565b005b6102456004803603602081101561021957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610728565b604051808215151515815260200191505060405180910390f35b6102676108a2565b604051808215151515815260200191505060405180910390f35b6102896108b9565b6040518082815260200191505060405180910390f35b6102a76108f2565b005b6102b1610a7a565b005b6102bb610b18565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103336004803603604081101561031357600080fd5b810190808035906020019092919080359060200190929190505050610b41565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103c16004803603604081101561038b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b73565b604051808215151515815260200191505060405180910390f35b6103e3610ba5565b6040518082815260200191505060405180910390f35b6104256004803603602081101561040f57600080fd5b8101908080359060200190929190505050610bac565b6040518082815260200191505060405180910390f35b6104876004803603604081101561045157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bd3565b005b610491610c5d565b6040518082815260200191505060405180910390f35b6104e9600480360360208110156104bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c96565b604051808215151515815260200191505060405180910390f35b6105456004803603602081101561051957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e11565b005b600060016000838152602001908152602001600020600201549050919050565b61058e600160008481526020019081526020016000206002015461058961104e565b610b73565b6105e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611652602f913960400191505060405180910390fd5b6105ed8282611056565b5050565b6105f961104e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461067c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611731602f913960400191505060405180910390fd5b61068682826110ea565b5050565b6106c960405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902033610b73565b61071e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180611681602e913960400191505060405180910390fd5b61072661117e565b565b60006107376000801b33610b73565b6107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616c6c6572206973206e6f7420616e2061646d696e0000000000000000000081525060200191505060405180910390fd5b6107e860405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083610b73565b61085a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f677579206973206e6f7420612074656d706c617465720000000000000000000081525060200191505060405180910390fd5b61089960405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083610bd3565b60019050919050565b6000600260009054906101000a900460ff16905090565b60405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902081565b6108fa61104e565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ab960405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902033610b73565b610b0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611705602c913960400191505060405180910390fd5b610b16611287565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610b6b826001600086815260200190815260200160002060000161139190919063ffffffff16565b905092915050565b6000610b9d82600160008681526020019081526020016000206000016113ab90919063ffffffff16565b905092915050565b6000801b81565b6000610bcc600160008481526020019081526020016000206000016113db565b9050919050565b610bfa6001600084815260200190815260200160002060020154610bf561104e565b610b73565b610c4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806116d56030913960400191505060405180910390fd5b610c5982826110ea565b5050565b60405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902081565b6000610ca56000801b33610b73565b610d17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616c6c6572206973206e6f7420616e2061646d696e0000000000000000000081525060200191505060405180910390fd5b610d5660405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083610b73565b15610dc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f67757920697320616c726561647920612074656d706c6174657200000000000081525060200191505060405180910390fd5b610e0860405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083610567565b60019050919050565b610e1961104e565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806116af6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611046836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6113f0565b905092915050565b600033905090565b61107e816001600085815260200190815260200160002060000161101e90919063ffffffff16565b156110e65761108b61104e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b611112816001600085815260200190815260200160002060000161146090919063ffffffff16565b1561117a5761111f61104e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600260009054906101000a900460ff16611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600260006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61124461104e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600260009054906101000a900460ff161561130a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861134e61104e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60006113a08360000183611490565b60001c905092915050565b60006113d3836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611513565b905092915050565b60006113e982600001611536565b9050919050565b60006113fc8383611513565b61145557826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905061145a565b600090505b92915050565b6000611488836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611547565b905092915050565b6000818360000180549050116114f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806116306022913960400191505060405180910390fd5b82600001828154811061150057fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600081600001805490509050919050565b60008083600101600084815260200190815260200160002054905060008114611623576000600182039050600060018660000180549050039050600086600001828154811061159257fe5b90600052602060002001549050808760000184815481106115af57fe5b90600052602060002001819055506001830187600101600083815260200190815260200160002081905550866000018054806115e757fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050611629565b60009150505b9291505056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e744261646765466163746f72793a206d75737420686176652070617573657220726f6c6520746f20756e70617573654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b654261646765466163746f72793a206d75737420686176652070617573657220726f6c6520746f207061757365416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a26469706673582212203c74bb60ecdc3bf04ed0a42dfa3fe7285798bd297f1aefed79c59575b0af0f7664736f6c634300060a0033", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAUSER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEMPLATER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"addTemplater\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"removeTemplater\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addTemplater(address)\":{\"details\":\"Access restricted only for Admins\",\"params\":{\"guy\":\"Address of the new Templater\"},\"returns\":{\"_0\":\"True if the guy address is added as Templater\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"details\":\"the caller must have the 'PAUSER_ROLE'\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"removeTemplater(address)\":{\"details\":\"Access restricted only for Admins\",\"params\":{\"guy\":\"Address of the Templater\"},\"returns\":{\"_0\":\"True if the guy address is removed as Templater\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"details\":\"the caller must have the 'PAUSER_ROLE'\"}},\"stateVariables\":{\"TEMPLATER_ROLE\":{\"details\":\"Roles\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addTemplater(address)\":{\"notice\":\"Add a new Templater\"},\"pause()\":{\"notice\":\"Pause all the functions\"},\"removeTemplater(address)\":{\"notice\":\"Remove a Templater\"},\"unpause()\":{\"notice\":\"Unpause all the functions\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/sencha/maker-badges/contracts/BadgeRoles.sol\":\"BadgeRoles\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/sencha/maker-badges/contracts/BadgeRoles.sol\":{\"keccak256\":\"0x30fb9b91a1a0ab7ccbfac78cb481e3b316f804581cb73b973bc5eb5f4b1e1a86\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5fb0a8b8b77684e4db3b4ae21b9c985fa2c38439f6e32b596fa40a2a2ad634e4\",\"dweb:/ipfs/QmZabUkMbDRunwLQGg7eWCW7wXM98xsERpakYsax718KQp\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x92f7900d382761c7faefeaced81c6b4f1aae909ed0551803bfe8f27101956360\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://407c0864143968542e5cf5aa7556916d2cf292b201e3dadb65662e9a3aa24187\",\"dweb:/ipfs/QmSnXzYAUaGLGr7uofRbgQraTJvatbjQLBPhyYiMd18oUJ\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c\",\"dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b50600062000024620001b360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000600260006101000a81548160ff021916908315150217905550620001016000801b620000f5620001bb60201b60201c565b620001e460201b60201c565b6200015760405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e01905060405180910390206200014b620001bb60201b60201c565b620001e460201b60201c565b620001ad60405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b0190506040518091039020620001a1620001bb60201b60201c565b620001e460201b60201c565b62000373565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620001f68282620001fa60201b60201c565b5050565b6200022981600160008581526020019081526020016000206000016200029e60201b6200101e1790919060201c565b156200029a576200023f620001b360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620002ce836000018373ffffffffffffffffffffffffffffffffffffffff1660001b620002d660201b60201c565b905092915050565b6000620002ea83836200035060201b60201c565b620003455782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506200034a565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b61179580620003836000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80638da5cb5b116100a2578063ca15c87311610071578063ca15c873146103f9578063d547741f1461043b578063e63ab1e914610489578063e6c0d714146104a7578063f2fde38b1461050357610116565b80638da5cb5b146102b35780639010d07c146102fd57806391d1485414610375578063a217fddf146103db57610116565b80634ba360ba116100e95780634ba360ba146102035780635c975abb1461025f5780636cdd0a1614610281578063715018a61461029f5780638456cb59146102a957610116565b8063248a9ca31461011b5780632f2ff15d1461015d57806336568abe146101ab5780633f4ba83a146101f9575b600080fd5b6101476004803603602081101561013157600080fd5b8101908080359060200190929190505050610547565b6040518082815260200191505060405180910390f35b6101a96004803603604081101561017357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610567565b005b6101f7600480360360408110156101c157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105f1565b005b61020161068a565b005b6102456004803603602081101561021957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610728565b604051808215151515815260200191505060405180910390f35b6102676108a2565b604051808215151515815260200191505060405180910390f35b6102896108b9565b6040518082815260200191505060405180910390f35b6102a76108f2565b005b6102b1610a7a565b005b6102bb610b18565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103336004803603604081101561031357600080fd5b810190808035906020019092919080359060200190929190505050610b41565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103c16004803603604081101561038b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b73565b604051808215151515815260200191505060405180910390f35b6103e3610ba5565b6040518082815260200191505060405180910390f35b6104256004803603602081101561040f57600080fd5b8101908080359060200190929190505050610bac565b6040518082815260200191505060405180910390f35b6104876004803603604081101561045157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bd3565b005b610491610c5d565b6040518082815260200191505060405180910390f35b6104e9600480360360208110156104bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c96565b604051808215151515815260200191505060405180910390f35b6105456004803603602081101561051957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e11565b005b600060016000838152602001908152602001600020600201549050919050565b61058e600160008481526020019081526020016000206002015461058961104e565b610b73565b6105e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611652602f913960400191505060405180910390fd5b6105ed8282611056565b5050565b6105f961104e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461067c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611731602f913960400191505060405180910390fd5b61068682826110ea565b5050565b6106c960405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902033610b73565b61071e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180611681602e913960400191505060405180910390fd5b61072661117e565b565b60006107376000801b33610b73565b6107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616c6c6572206973206e6f7420616e2061646d696e0000000000000000000081525060200191505060405180910390fd5b6107e860405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083610b73565b61085a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f677579206973206e6f7420612074656d706c617465720000000000000000000081525060200191505060405180910390fd5b61089960405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083610bd3565b60019050919050565b6000600260009054906101000a900460ff16905090565b60405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902081565b6108fa61104e565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ab960405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902033610b73565b610b0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611705602c913960400191505060405180910390fd5b610b16611287565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610b6b826001600086815260200190815260200160002060000161139190919063ffffffff16565b905092915050565b6000610b9d82600160008681526020019081526020016000206000016113ab90919063ffffffff16565b905092915050565b6000801b81565b6000610bcc600160008481526020019081526020016000206000016113db565b9050919050565b610bfa6001600084815260200190815260200160002060020154610bf561104e565b610b73565b610c4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806116d56030913960400191505060405180910390fd5b610c5982826110ea565b5050565b60405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902081565b6000610ca56000801b33610b73565b610d17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616c6c6572206973206e6f7420616e2061646d696e0000000000000000000081525060200191505060405180910390fd5b610d5660405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083610b73565b15610dc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f67757920697320616c726561647920612074656d706c6174657200000000000081525060200191505060405180910390fd5b610e0860405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083610567565b60019050919050565b610e1961104e565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806116af6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611046836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6113f0565b905092915050565b600033905090565b61107e816001600085815260200190815260200160002060000161101e90919063ffffffff16565b156110e65761108b61104e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b611112816001600085815260200190815260200160002060000161146090919063ffffffff16565b1561117a5761111f61104e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600260009054906101000a900460ff16611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600260006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61124461104e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600260009054906101000a900460ff161561130a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861134e61104e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60006113a08360000183611490565b60001c905092915050565b60006113d3836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611513565b905092915050565b60006113e982600001611536565b9050919050565b60006113fc8383611513565b61145557826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905061145a565b600090505b92915050565b6000611488836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611547565b905092915050565b6000818360000180549050116114f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806116306022913960400191505060405180910390fd5b82600001828154811061150057fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600081600001805490509050919050565b60008083600101600084815260200190815260200160002054905060008114611623576000600182039050600060018660000180549050039050600086600001828154811061159257fe5b90600052602060002001549050808760000184815481106115af57fe5b90600052602060002001819055506001830187600101600083815260200190815260200160002081905550866000018054806115e757fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050611629565b60009150505b9291505056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e744261646765466163746f72793a206d75737420686176652070617573657220726f6c6520746f20756e70617573654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b654261646765466163746f72793a206d75737420686176652070617573657220726f6c6520746f207061757365416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a26469706673582212208712bdf23e95a3ec3c47364a5392d37268b340113749e756aad960b48ef3cbc164736f6c634300060b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c80638da5cb5b116100a2578063ca15c87311610071578063ca15c873146103f9578063d547741f1461043b578063e63ab1e914610489578063e6c0d714146104a7578063f2fde38b1461050357610116565b80638da5cb5b146102b35780639010d07c146102fd57806391d1485414610375578063a217fddf146103db57610116565b80634ba360ba116100e95780634ba360ba146102035780635c975abb1461025f5780636cdd0a1614610281578063715018a61461029f5780638456cb59146102a957610116565b8063248a9ca31461011b5780632f2ff15d1461015d57806336568abe146101ab5780633f4ba83a146101f9575b600080fd5b6101476004803603602081101561013157600080fd5b8101908080359060200190929190505050610547565b6040518082815260200191505060405180910390f35b6101a96004803603604081101561017357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610567565b005b6101f7600480360360408110156101c157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105f1565b005b61020161068a565b005b6102456004803603602081101561021957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610728565b604051808215151515815260200191505060405180910390f35b6102676108a2565b604051808215151515815260200191505060405180910390f35b6102896108b9565b6040518082815260200191505060405180910390f35b6102a76108f2565b005b6102b1610a7a565b005b6102bb610b18565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103336004803603604081101561031357600080fd5b810190808035906020019092919080359060200190929190505050610b41565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103c16004803603604081101561038b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b73565b604051808215151515815260200191505060405180910390f35b6103e3610ba5565b6040518082815260200191505060405180910390f35b6104256004803603602081101561040f57600080fd5b8101908080359060200190929190505050610bac565b6040518082815260200191505060405180910390f35b6104876004803603604081101561045157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bd3565b005b610491610c5d565b6040518082815260200191505060405180910390f35b6104e9600480360360208110156104bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c96565b604051808215151515815260200191505060405180910390f35b6105456004803603602081101561051957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e11565b005b600060016000838152602001908152602001600020600201549050919050565b61058e600160008481526020019081526020016000206002015461058961104e565b610b73565b6105e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611652602f913960400191505060405180910390fd5b6105ed8282611056565b5050565b6105f961104e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461067c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611731602f913960400191505060405180910390fd5b61068682826110ea565b5050565b6106c960405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902033610b73565b61071e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180611681602e913960400191505060405180910390fd5b61072661117e565b565b60006107376000801b33610b73565b6107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616c6c6572206973206e6f7420616e2061646d696e0000000000000000000081525060200191505060405180910390fd5b6107e860405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083610b73565b61085a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f677579206973206e6f7420612074656d706c617465720000000000000000000081525060200191505060405180910390fd5b61089960405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083610bd3565b60019050919050565b6000600260009054906101000a900460ff16905090565b60405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902081565b6108fa61104e565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ab960405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902033610b73565b610b0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611705602c913960400191505060405180910390fd5b610b16611287565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610b6b826001600086815260200190815260200160002060000161139190919063ffffffff16565b905092915050565b6000610b9d82600160008681526020019081526020016000206000016113ab90919063ffffffff16565b905092915050565b6000801b81565b6000610bcc600160008481526020019081526020016000206000016113db565b9050919050565b610bfa6001600084815260200190815260200160002060020154610bf561104e565b610b73565b610c4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806116d56030913960400191505060405180910390fd5b610c5982826110ea565b5050565b60405180807f5041555345525f524f4c45000000000000000000000000000000000000000000815250600b019050604051809103902081565b6000610ca56000801b33610b73565b610d17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616c6c6572206973206e6f7420616e2061646d696e0000000000000000000081525060200191505060405180910390fd5b610d5660405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083610b73565b15610dc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f67757920697320616c726561647920612074656d706c6174657200000000000081525060200191505060405180910390fd5b610e0860405180807f54454d504c415445525f524f4c45000000000000000000000000000000000000815250600e019050604051809103902083610567565b60019050919050565b610e1961104e565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806116af6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611046836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6113f0565b905092915050565b600033905090565b61107e816001600085815260200190815260200160002060000161101e90919063ffffffff16565b156110e65761108b61104e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b611112816001600085815260200190815260200160002060000161146090919063ffffffff16565b1561117a5761111f61104e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600260009054906101000a900460ff16611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600260006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61124461104e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600260009054906101000a900460ff161561130a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861134e61104e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60006113a08360000183611490565b60001c905092915050565b60006113d3836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611513565b905092915050565b60006113e982600001611536565b9050919050565b60006113fc8383611513565b61145557826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905061145a565b600090505b92915050565b6000611488836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611547565b905092915050565b6000818360000180549050116114f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806116306022913960400191505060405180910390fd5b82600001828154811061150057fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600081600001805490509050919050565b60008083600101600084815260200190815260200160002054905060008114611623576000600182039050600060018660000180549050039050600086600001828154811061159257fe5b90600052602060002001549050808760000184815481106115af57fe5b90600052602060002001819055506001830187600101600083815260200190815260200160002081905550866000018054806115e757fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050611629565b60009150505b9291505056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e744261646765466163746f72793a206d75737420686176652070617573657220726f6c6520746f20756e70617573654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b654261646765466163746f72793a206d75737420686176652070617573657220726f6c6520746f207061757365416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a26469706673582212208712bdf23e95a3ec3c47364a5392d37268b340113749e756aad960b48ef3cbc164736f6c634300060b0033", "immutableReferences": {}, "sourceMap": "660:1939:1:-:0;;;877:164;;;;;;;;;;865:17:6;885:12;:10;;;:12;;:::i;:::-;865:32;;916:9;907:6;;:18;;;;;;;;;;;;;;;;;;973:9;940:43;;969:1;940:43;;;;;;;;;;;;831:159;933:5:21;923:7;;:15;;;;;;;;;;;;;;;;;;908:39:1;1762:4:5;919:18:1;;939:7;:5;;;:7;;:::i;:::-;908:10;;;:39;;:::i;:::-;958:35;779:27;;;;;;;;;;;;;;;;;;;985:7;:5;;;:7;;:::i;:::-;958:10;;;:35;;:::i;:::-;1003:32;848:24;;;;;;;;;;;;;;;;;;;1027:7;:5;;;:7;;:::i;:::-;1003:10;;;:32;;:::i;:::-;660:1939;;590:104:4;643:15;677:10;670:17;;590:104;:::o;1066:77:6:-;1104:7;1130:6;;;;;;;;;;;1123:13;;1066:77;:::o;6578:110:5:-;6656:25;6667:4;6673:7;6656:10;;;:25;;:::i;:::-;6578:110;;:::o;7015:184::-;7088:33;7113:7;7088:6;:12;7095:4;7088:12;;;;;;;;;;;:20;;:24;;;;;;:33;;;;:::i;:::-;7084:109;;;7169:12;:10;;;:12;;:::i;:::-;7142:40;;7160:7;7142:40;;7154:4;7142:40;;;;;;;;;;7084:109;7015:184;;:::o;4864:141:20:-;4934:4;4957:41;4962:3;:10;;4990:5;4982:14;;4974:23;;4957:4;;;:41;;:::i;:::-;4950:48;;4864:141;;;;:::o;1611:404::-;1674:4;1695:21;1705:3;1710:5;1695:9;;;:21;;:::i;:::-;1690:319;;1732:3;:11;;1749:5;1732:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1912:3;:11;;:18;;;;1890:3;:12;;:19;1903:5;1890:19;;;;;;;;;;;:40;;;;1951:4;1944:11;;;;1690:319;1993:5;1986:12;;1611:404;;;;;:::o;3776:127::-;3849:4;3895:1;3872:3;:12;;:19;3885:5;3872:19;;;;;;;;;;;;:24;;3865:31;;3776:127;;;;:::o;660:1939:1:-;;;;;;;", "deployedSourceMap": "660:1939:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4272:112:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4634:223;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5808:205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2439:156:1;;;:::i;:::-;;1914:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1040:76:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;738:68:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1689:145:6;;;:::i;:::-;;2205:140:1;;;:::i;:::-;;1066:77:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3955:136:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2940:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1717:49;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3245:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5091:226;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;810:62:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1527:201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1983:240:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4272:112:5;4329:7;4355:6;:12;4362:4;4355:12;;;;;;;;;;;:22;;;4348:29;;4272:112;;;:::o;4634:223::-;4717:45;4725:6;:12;4732:4;4725:12;;;;;;;;;;;:22;;;4749:12;:10;:12::i;:::-;4717:7;:45::i;:::-;4709:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4825:25;4836:4;4842:7;4825:10;:25::i;:::-;4634:223;;:::o;5808:205::-;5905:12;:10;:12::i;:::-;5894:23;;:7;:23;;;5886:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5980:26;5992:4;5998:7;5980:11;:26::i;:::-;5808:205;;:::o;2439:156:1:-;2485:32;848:24;;;;;;;;;;;;;;;;;;;2506:10;2485:7;:32::i;:::-;2477:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2578:10;:8;:10::i;:::-;2439:156::o;1914:200::-;1980:4;1103:39;1762:4:5;1111:18:1;;1131:10;1103:7;:39::i;:::-;1095:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2000:28:::1;779:27;;;;;;;::::0;::::1;;;;;;;;;;;2024:3;2000:7;:28::i;:::-;1992:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;2061:31;779:27;;;;;;;::::0;::::1;;;;;;;;;;;2088:3;2061:10;:31::i;:::-;2105:4;2098:11;;1914:200:::0;;;:::o;1040:76:21:-;1079:4;1102:7;;;;;;;;;;;1095:14;;1040:76;:::o;738:68:1:-;779:27;;;;;;;;;;;;;;;;;;;738:68;:::o;1689:145:6:-;1280:12;:10;:12::i;:::-;1270:22;;:6;;;;;;;;;;;:22;;;1262:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1795:1:::1;1758:40;;1779:6;::::0;::::1;;;;;;;;;1758:40;;;;;;;;;;;;1825:1;1808:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1689:145::o:0;2205:140:1:-;2245:32;848:24;;;;;;;;;;;;;;;;;;;2266:10;2245:7;:32::i;:::-;2237:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2332:8;:6;:8::i;:::-;2205:140::o;1066:77:6:-;1104:7;1130:6;;;;;;;;;;;1123:13;;1066:77;:::o;3955:136:5:-;4028:7;4054:30;4078:5;4054:6;:12;4061:4;4054:12;;;;;;;;;;;:20;;:23;;:30;;;;:::i;:::-;4047:37;;3955:136;;;;:::o;2940:137::-;3009:4;3032:38;3062:7;3032:6;:12;3039:4;3032:12;;;;;;;;;;;:20;;:29;;:38;;;;:::i;:::-;3025:45;;2940:137;;;;:::o;1717:49::-;1762:4;1717:49;;;:::o;3245:125::-;3308:7;3334:29;:6;:12;3341:4;3334:12;;;;;;;;;;;:20;;:27;:29::i;:::-;3327:36;;3245:125;;;:::o;5091:226::-;5175:45;5183:6;:12;5190:4;5183:12;;;;;;;;;;;:22;;;5207:12;:10;:12::i;:::-;5175:7;:45::i;:::-;5167:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5284:26;5296:4;5302:7;5284:11;:26::i;:::-;5091:226;;:::o;810:62:1:-;848:24;;;;;;;;;;;;;;;;;;;810:62;:::o;1527:201::-;1590:4;1103:39;1762:4:5;1111:18:1;;1131:10;1103:7;:39::i;:::-;1095:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1611:28:::1;779:27;;;;;;;::::0;::::1;;;;;;;;;;;1635:3;1611:7;:28::i;:::-;1610:29;1602:68;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;1676:30;779:27;;;;;;;::::0;::::1;;;;;;;;;;;1702:3;1676:9;:30::i;:::-;1719:4;1712:11;;1527:201:::0;;;:::o;1983:240:6:-;1280:12;:10;:12::i;:::-;1270:22;;:6;;;;;;;;;;;:22;;;1262:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2091:1:::1;2071:22;;:8;:22;;;;2063:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2180:8;2151:38;;2172:6;::::0;::::1;;;;;;;;;2151:38;;;;;;;;;;;;2208:8;2199:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1983:240:::0;:::o;4864:141:20:-;4934:4;4957:41;4962:3;:10;;4990:5;4982:14;;4974:23;;4957:4;:41::i;:::-;4950:48;;4864:141;;;;:::o;590:104:4:-;643:15;677:10;670:17;;590:104;:::o;7015:184:5:-;7088:33;7113:7;7088:6;:12;7095:4;7088:12;;;;;;;;;;;:20;;:24;;:33;;;;:::i;:::-;7084:109;;;7169:12;:10;:12::i;:::-;7142:40;;7160:7;7142:40;;7154:4;7142:40;;;;;;;;;;7084:109;7015:184;;:::o;7205:188::-;7279:36;7307:7;7279:6;:12;7286:4;7279:12;;;;;;;;;;;:20;;:27;;:36;;;;:::i;:::-;7275:112;;;7363:12;:10;:12::i;:::-;7336:40;;7354:7;7336:40;;7348:4;7336:40;;;;;;;;;;7275:112;7205:188;;:::o;2042:117:21:-;1610:7;;;;;;;;;;;1602:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2110:5:::1;2100:7;;:15;;;;;;;;;;;;;;;;;;2130:22;2139:12;:10;:12::i;:::-;2130:22;;;;;;;;;;;;;;;;;;;;;;2042:117::o:0;1795:115::-;1346:7;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1864:4:::1;1854:7;;:14;;;;;;;;;;;;;;;;;;1883:20;1890:12;:10;:12::i;:::-;1883:20;;;;;;;;;;;;;;;;;;;;;;1795:115::o:0;6085:147:20:-;6159:7;6201:22;6205:3;:10;;6217:5;6201:3;:22::i;:::-;6193:31;;6178:47;;6085:147;;;;:::o;5401:156::-;5481:4;5504:46;5514:3;:10;;5542:5;5534:14;;5526:23;;5504:9;:46::i;:::-;5497:53;;5401:156;;;;:::o;5638:115::-;5701:7;5727:19;5735:3;:10;;5727:7;:19::i;:::-;5720:26;;5638:115;;;:::o;1611:404::-;1674:4;1695:21;1705:3;1710:5;1695:9;:21::i;:::-;1690:319;;1732:3;:11;;1749:5;1732:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1912:3;:11;;:18;;;;1890:3;:12;;:19;1903:5;1890:19;;;;;;;;;;;:40;;;;1951:4;1944:11;;;;1690:319;1993:5;1986:12;;1611:404;;;;;:::o;5173:147::-;5246:4;5269:44;5277:3;:10;;5305:5;5297:14;;5289:23;;5269:7;:44::i;:::-;5262:51;;5173:147;;;;:::o;4423:201::-;4490:7;4538:5;4517:3;:11;;:18;;;;:26;4509:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4599:3;:11;;4611:5;4599:18;;;;;;;;;;;;;;;;4592:25;;4423:201;;;;:::o;3776:127::-;3849:4;3895:1;3872:3;:12;;:19;3885:5;3872:19;;;;;;;;;;;;:24;;3865:31;;3776:127;;;;:::o;3984:107::-;4040:7;4066:3;:11;;:18;;;;4059:25;;3984:107;;;:::o;2183:1512::-;2249:4;2365:18;2386:3;:12;;:19;2399:5;2386:19;;;;;;;;;;;;2365:40;;2434:1;2420:10;:15;2416:1273;;2777:21;2814:1;2801:10;:14;2777:38;;2829:17;2870:1;2849:3;:11;;:18;;;;:22;2829:42;;3111:17;3131:3;:11;;3143:9;3131:22;;;;;;;;;;;;;;;;3111:42;;3274:9;3245:3;:11;;3257:13;3245:26;;;;;;;;;;;;;;;:38;;;;3391:1;3375:13;:17;3349:3;:12;;:23;3362:9;3349:23;;;;;;;;;;;:43;;;;3498:3;:11;;:17;;;;;;;;;;;;;;;;;;;;;;;;3590:3;:12;;:19;3603:5;3590:19;;;;;;;;;;;3583:26;;;3631:4;3624:11;;;;;;;;2416:1273;3673:5;3666:12;;;2183:1512;;;;;:::o", - "source": "/// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.6.10;\n\n/// @title Non-transferable Badges for Maker Ecosystem Activity, CDIP 18\n/// @author Nazzareno Massari @naszam\n/// @notice BadgeRoles Access Management for Default Admin, Templater and Pauser Role\n/// @dev See https://github.com/makerdao/community/issues/537\n/// @dev All function calls are currently implemented without side effects through TDD approach\n/// @dev OpenZeppelin v3.0 library is used for secure contract development\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport \"@openzeppelin/contracts/utils/Pausable.sol\";\n\n\ncontract BadgeRoles is Ownable, AccessControl, Pausable {\n\n /// @dev Roles\n bytes32 public constant TEMPLATER_ROLE = keccak256(\"TEMPLATER_ROLE\");\n bytes32 public constant PAUSER_ROLE = keccak256(\"PAUSER_ROLE\");\n\n constructor() public {\n _setupRole(DEFAULT_ADMIN_ROLE, owner());\n\n _setupRole(TEMPLATER_ROLE, owner());\n _setupRole(PAUSER_ROLE, owner());\n\n }\n\n /// @dev Modifiers\n modifier onlyAdmin() {\n require(hasRole(DEFAULT_ADMIN_ROLE, msg.sender), \"Caller is not an admin\");\n _;\n }\n\n modifier onlyTemplater() {\n require(hasRole(TEMPLATER_ROLE, msg.sender), \"Caller is not a template owner\");\n _;\n }\n\n /// @dev Functions\n\n /// @notice Add a new Templater\n /// @dev Access restricted only for Admins\n /// @param guy Address of the new Templater\n /// @return True if the guy address is added as Templater\n function addTemplater(address guy) external onlyAdmin returns (bool) {\n require(!hasRole(TEMPLATER_ROLE, guy), \"guy is already a templater\");\n grantRole(TEMPLATER_ROLE, guy);\n return true;\n }\n\n /// @notice Remove a Templater\n /// @dev Access restricted only for Admins\n /// @param guy Address of the Templater\n /// @return True if the guy address is removed as Templater\n function removeTemplater(address guy) external onlyAdmin returns (bool) {\n require(hasRole(TEMPLATER_ROLE, guy), \"guy is not a templater\");\n revokeRole(TEMPLATER_ROLE, guy);\n return true;\n }\n /// @notice Pause all the functions\n /// @dev the caller must have the 'PAUSER_ROLE'\n function pause() external {\n require(hasRole(PAUSER_ROLE, msg.sender), \"BadgeFactory: must have pauser role to pause\");\n _pause();\n }\n\n /// @notice Unpause all the functions\n /// @dev the caller must have the 'PAUSER_ROLE'\n function unpause() external {\n require(hasRole(PAUSER_ROLE, msg.sender), \"BadgeFactory: must have pauser role to unpause\");\n _unpause();\n }\n\n\n}\n", + "source": "/// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.6.11;\n\n/// @title Non-transferable Badges for Maker Ecosystem Activity, CDIP 18\n/// @author Nazzareno Massari @naszam\n/// @notice BadgeRoles Access Management for Default Admin, Templater and Pauser Role\n/// @dev See https://github.com/makerdao/community/issues/537\n/// @dev All function calls are currently implemented without side effects through TDD approach\n/// @dev OpenZeppelin v3.0 library is used for secure contract development\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport \"@openzeppelin/contracts/utils/Pausable.sol\";\n\n\ncontract BadgeRoles is Ownable, AccessControl, Pausable {\n\n /// @dev Roles\n bytes32 public constant TEMPLATER_ROLE = keccak256(\"TEMPLATER_ROLE\");\n bytes32 public constant PAUSER_ROLE = keccak256(\"PAUSER_ROLE\");\n\n constructor() public {\n _setupRole(DEFAULT_ADMIN_ROLE, owner());\n\n _setupRole(TEMPLATER_ROLE, owner());\n _setupRole(PAUSER_ROLE, owner());\n\n }\n\n /// @dev Modifiers\n modifier onlyAdmin() {\n require(hasRole(DEFAULT_ADMIN_ROLE, msg.sender), \"Caller is not an admin\");\n _;\n }\n\n modifier onlyTemplater() {\n require(hasRole(TEMPLATER_ROLE, msg.sender), \"Caller is not a template owner\");\n _;\n }\n\n /// @dev Functions\n\n /// @notice Add a new Templater\n /// @dev Access restricted only for Admins\n /// @param guy Address of the new Templater\n /// @return True if the guy address is added as Templater\n function addTemplater(address guy) external onlyAdmin returns (bool) {\n require(!hasRole(TEMPLATER_ROLE, guy), \"guy is already a templater\");\n grantRole(TEMPLATER_ROLE, guy);\n return true;\n }\n\n /// @notice Remove a Templater\n /// @dev Access restricted only for Admins\n /// @param guy Address of the Templater\n /// @return True if the guy address is removed as Templater\n function removeTemplater(address guy) external onlyAdmin returns (bool) {\n require(hasRole(TEMPLATER_ROLE, guy), \"guy is not a templater\");\n revokeRole(TEMPLATER_ROLE, guy);\n return true;\n }\n /// @notice Pause all the functions\n /// @dev the caller must have the 'PAUSER_ROLE'\n function pause() external {\n require(hasRole(PAUSER_ROLE, msg.sender), \"BadgeFactory: must have pauser role to pause\");\n _pause();\n }\n\n /// @notice Unpause all the functions\n /// @dev the caller must have the 'PAUSER_ROLE'\n function unpause() external {\n require(hasRole(PAUSER_ROLE, msg.sender), \"BadgeFactory: must have pauser role to unpause\");\n _unpause();\n }\n\n\n}\n", "sourcePath": "/home/sencha/maker-badges/contracts/BadgeRoles.sol", "ast": { "absolutePath": "/home/sencha/maker-badges/contracts/BadgeRoles.sol", @@ -428,7 +428,7 @@ "literals": [ "solidity", "0.6", - ".10" + ".11" ], "nodeType": "PragmaDirective", "src": "37:23:1" @@ -439,7 +439,7 @@ "id": 477, "nodeType": "ImportDirective", "scope": 634, - "sourceUnit": 1528, + "sourceUnit": 1559, "src": "493:52:1", "symbolAliases": [], "unitAlias": "" @@ -450,7 +450,7 @@ "id": 478, "nodeType": "ImportDirective", "scope": 634, - "sourceUnit": 1419, + "sourceUnit": 1450, "src": "546:58:1", "symbolAliases": [], "unitAlias": "" @@ -461,7 +461,7 @@ "id": 479, "nodeType": "ImportDirective", "scope": 634, - "sourceUnit": 4211, + "sourceUnit": 4242, "src": "605:52:1", "symbolAliases": [], "unitAlias": "" @@ -476,10 +476,10 @@ "id": 480, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1527, + "referencedDeclaration": 1558, "src": "683:7:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$1527", + "typeIdentifier": "t_contract$_Ownable_$1558", "typeString": "contract Ownable" } }, @@ -494,10 +494,10 @@ "id": 482, "name": "AccessControl", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1418, + "referencedDeclaration": 1449, "src": "692:13:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_AccessControl_$1418", + "typeIdentifier": "t_contract$_AccessControl_$1449", "typeString": "contract AccessControl" } }, @@ -512,10 +512,10 @@ "id": 484, "name": "Pausable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4210, + "referencedDeclaration": 4241, "src": "707:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pausable_$4210", + "typeIdentifier": "t_contract$_Pausable_$4241", "typeString": "contract Pausable" } }, @@ -525,10 +525,10 @@ } ], "contractDependencies": [ - 1135, - 1418, - 1527, - 4210 + 1166, + 1449, + 1558, + 4241 ], "contractKind": "contract", "documentation": null, @@ -536,10 +536,10 @@ "id": 633, "linearizedBaseContracts": [ 633, - 4210, - 1418, - 1527, - 1135 + 4241, + 1449, + 1558, + 1166 ], "name": "BadgeRoles", "nodeType": "ContractDefinition", @@ -732,7 +732,7 @@ "name": "DEFAULT_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1161, + "referencedDeclaration": 1192, "src": "919:18:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -748,7 +748,7 @@ "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, + "referencedDeclaration": 1494, "src": "939:5:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", @@ -786,7 +786,7 @@ "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, + "referencedDeclaration": 1375, "src": "908:10:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", @@ -838,7 +838,7 @@ "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, + "referencedDeclaration": 1494, "src": "985:5:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", @@ -876,7 +876,7 @@ "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, + "referencedDeclaration": 1375, "src": "958:10:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", @@ -928,7 +928,7 @@ "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, + "referencedDeclaration": 1494, "src": "1027:5:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", @@ -966,7 +966,7 @@ "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, + "referencedDeclaration": 1375, "src": "1003:10:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", @@ -1039,7 +1039,7 @@ "name": "DEFAULT_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1161, + "referencedDeclaration": 1192, "src": "1111:18:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1091,7 +1091,7 @@ "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, + "referencedDeclaration": 1238, "src": "1103:7:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", @@ -1274,7 +1274,7 @@ "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, + "referencedDeclaration": 1238, "src": "1230:7:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", @@ -1447,7 +1447,7 @@ "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, + "referencedDeclaration": 1238, "src": "1611:7:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", @@ -1583,7 +1583,7 @@ "name": "grantRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1282, + "referencedDeclaration": 1313, "src": "1676:9:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", @@ -1801,7 +1801,7 @@ "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, + "referencedDeclaration": 1238, "src": "2000:7:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", @@ -1932,7 +1932,7 @@ "name": "revokeRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1308, + "referencedDeclaration": 1339, "src": "2061:10:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", @@ -2166,7 +2166,7 @@ "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, + "referencedDeclaration": 1238, "src": "2245:7:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", @@ -2261,7 +2261,7 @@ "name": "_pause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4193, + "referencedDeclaration": 4224, "src": "2332:6:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -2392,7 +2392,7 @@ "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, + "referencedDeclaration": 1238, "src": "2485:7:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", @@ -2487,7 +2487,7 @@ "name": "_unpause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4209, + "referencedDeclaration": 4240, "src": "2578:8:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -2570,7 +2570,7 @@ "literals": [ "solidity", "0.6", - ".10" + ".11" ], "nodeType": "PragmaDirective", "src": "37:23:1" @@ -2581,7 +2581,7 @@ "id": 477, "nodeType": "ImportDirective", "scope": 634, - "sourceUnit": 1528, + "sourceUnit": 1559, "src": "493:52:1", "symbolAliases": [], "unitAlias": "" @@ -2592,7 +2592,7 @@ "id": 478, "nodeType": "ImportDirective", "scope": 634, - "sourceUnit": 1419, + "sourceUnit": 1450, "src": "546:58:1", "symbolAliases": [], "unitAlias": "" @@ -2603,7 +2603,7 @@ "id": 479, "nodeType": "ImportDirective", "scope": 634, - "sourceUnit": 4211, + "sourceUnit": 4242, "src": "605:52:1", "symbolAliases": [], "unitAlias": "" @@ -2618,10 +2618,10 @@ "id": 480, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1527, + "referencedDeclaration": 1558, "src": "683:7:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$1527", + "typeIdentifier": "t_contract$_Ownable_$1558", "typeString": "contract Ownable" } }, @@ -2636,10 +2636,10 @@ "id": 482, "name": "AccessControl", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1418, + "referencedDeclaration": 1449, "src": "692:13:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_AccessControl_$1418", + "typeIdentifier": "t_contract$_AccessControl_$1449", "typeString": "contract AccessControl" } }, @@ -2654,10 +2654,10 @@ "id": 484, "name": "Pausable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4210, + "referencedDeclaration": 4241, "src": "707:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pausable_$4210", + "typeIdentifier": "t_contract$_Pausable_$4241", "typeString": "contract Pausable" } }, @@ -2667,10 +2667,10 @@ } ], "contractDependencies": [ - 1135, - 1418, - 1527, - 4210 + 1166, + 1449, + 1558, + 4241 ], "contractKind": "contract", "documentation": null, @@ -2678,10 +2678,10 @@ "id": 633, "linearizedBaseContracts": [ 633, - 4210, - 1418, - 1527, - 1135 + 4241, + 1449, + 1558, + 1166 ], "name": "BadgeRoles", "nodeType": "ContractDefinition", @@ -2874,7 +2874,7 @@ "name": "DEFAULT_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1161, + "referencedDeclaration": 1192, "src": "919:18:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2890,7 +2890,7 @@ "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, + "referencedDeclaration": 1494, "src": "939:5:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", @@ -2928,7 +2928,7 @@ "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, + "referencedDeclaration": 1375, "src": "908:10:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", @@ -2980,7 +2980,7 @@ "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, + "referencedDeclaration": 1494, "src": "985:5:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", @@ -3018,7 +3018,7 @@ "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, + "referencedDeclaration": 1375, "src": "958:10:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", @@ -3070,7 +3070,7 @@ "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, + "referencedDeclaration": 1494, "src": "1027:5:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", @@ -3108,7 +3108,7 @@ "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, + "referencedDeclaration": 1375, "src": "1003:10:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", @@ -3181,7 +3181,7 @@ "name": "DEFAULT_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1161, + "referencedDeclaration": 1192, "src": "1111:18:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3233,7 +3233,7 @@ "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, + "referencedDeclaration": 1238, "src": "1103:7:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", @@ -3416,7 +3416,7 @@ "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, + "referencedDeclaration": 1238, "src": "1230:7:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", @@ -3589,7 +3589,7 @@ "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, + "referencedDeclaration": 1238, "src": "1611:7:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", @@ -3725,7 +3725,7 @@ "name": "grantRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1282, + "referencedDeclaration": 1313, "src": "1676:9:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", @@ -3943,7 +3943,7 @@ "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, + "referencedDeclaration": 1238, "src": "2000:7:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", @@ -4074,7 +4074,7 @@ "name": "revokeRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1308, + "referencedDeclaration": 1339, "src": "2061:10:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", @@ -4308,7 +4308,7 @@ "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, + "referencedDeclaration": 1238, "src": "2245:7:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", @@ -4403,7 +4403,7 @@ "name": "_pause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4193, + "referencedDeclaration": 4224, "src": "2332:6:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -4534,7 +4534,7 @@ "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, + "referencedDeclaration": 1238, "src": "2485:7:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", @@ -4629,7 +4629,7 @@ "name": "_unpause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4209, + "referencedDeclaration": 4240, "src": "2578:8:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -4698,12 +4698,13 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:05.889Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.582Z", "devdoc": { + "kind": "dev", "methods": { "addTemplater(address)": { "details": "Access restricted only for Admins", @@ -4767,9 +4768,11 @@ "TEMPLATER_ROLE": { "details": "Roles" } - } + }, + "version": 1 }, "userdoc": { + "kind": "user", "methods": { "addTemplater(address)": { "notice": "Add a new Templater" @@ -4783,6 +4786,7 @@ "unpause()": { "notice": "Unpause all the functions" } - } + }, + "version": 1 } } \ No newline at end of file diff --git a/abi/Context.json b/abi/Context.json index 4638575..2f67cdc 100644 --- a/abi/Context.json +++ b/abi/Context.json @@ -1,7 +1,7 @@ { "contractName": "Context", "abi": [], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/GSN/Context.sol\":\"Context\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/GSN/Context.sol\":\"Context\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, @@ -13,15 +13,15 @@ "absolutePath": "@openzeppelin/contracts/GSN/Context.sol", "exportedSymbols": { "Context": [ - 1135 + 1166 ] }, - "id": 1136, + "id": 1167, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1114, + "id": 1145, "literals": [ "solidity", "^", @@ -38,16 +38,16 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1135, + "id": 1166, "linearizedBaseContracts": [ - 1135 + 1166 ], "name": "Context", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1122, + "id": 1153, "nodeType": "Block", "src": "660:34:4", "statements": [ @@ -56,7 +56,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1119, + "id": 1150, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -67,7 +67,7 @@ "typeString": "msg" } }, - "id": 1120, + "id": 1151, "isConstant": false, "isLValue": false, "isPure": false, @@ -81,15 +81,15 @@ "typeString": "address payable" } }, - "functionReturnParameters": 1118, - "id": 1121, + "functionReturnParameters": 1149, + "id": 1152, "nodeType": "Return", "src": "670:17:4" } ] }, "documentation": null, - "id": 1123, + "id": 1154, "implemented": true, "kind": "function", "modifiers": [], @@ -97,23 +97,23 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1115, + "id": 1146, "nodeType": "ParameterList", "parameters": [], "src": "609:2:4" }, "returnParameters": { - "id": 1118, + "id": 1149, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1117, + "id": 1148, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1123, + "scope": 1154, "src": "643:15:4", "stateVariable": false, "storageLocation": "default", @@ -122,7 +122,7 @@ "typeString": "address payable" }, "typeName": { - "id": 1116, + "id": 1147, "name": "address", "nodeType": "ElementaryTypeName", "src": "643:15:4", @@ -138,7 +138,7 @@ ], "src": "642:17:4" }, - "scope": 1135, + "scope": 1166, "src": "590:104:4", "stateMutability": "view", "virtual": true, @@ -146,25 +146,25 @@ }, { "body": { - "id": 1133, + "id": 1164, "nodeType": "Block", "src": "765:165:4", "statements": [ { "expression": { "argumentTypes": null, - "id": 1128, + "id": 1159, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "775:4:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$1135", + "typeIdentifier": "t_contract$_Context_$1166", "typeString": "contract Context" } }, - "id": 1129, + "id": 1160, "nodeType": "ExpressionStatement", "src": "775:4:4" }, @@ -173,7 +173,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1130, + "id": 1161, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -184,7 +184,7 @@ "typeString": "msg" } }, - "id": 1131, + "id": 1162, "isConstant": false, "isLValue": false, "isPure": false, @@ -198,15 +198,15 @@ "typeString": "bytes calldata" } }, - "functionReturnParameters": 1127, - "id": 1132, + "functionReturnParameters": 1158, + "id": 1163, "nodeType": "Return", "src": "908:15:4" } ] }, "documentation": null, - "id": 1134, + "id": 1165, "implemented": true, "kind": "function", "modifiers": [], @@ -214,23 +214,23 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1124, + "id": 1155, "nodeType": "ParameterList", "parameters": [], "src": "717:2:4" }, "returnParameters": { - "id": 1127, + "id": 1158, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1126, + "id": 1157, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1134, + "scope": 1165, "src": "751:12:4", "stateVariable": false, "storageLocation": "memory", @@ -239,7 +239,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1125, + "id": 1156, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "751:5:4", @@ -254,14 +254,14 @@ ], "src": "750:14:4" }, - "scope": 1135, + "scope": 1166, "src": "700:230:4", "stateMutability": "view", "virtual": true, "visibility": "internal" } ], - "scope": 1136, + "scope": 1167, "src": "558:374:4" } ], @@ -271,15 +271,15 @@ "absolutePath": "@openzeppelin/contracts/GSN/Context.sol", "exportedSymbols": { "Context": [ - 1135 + 1166 ] }, - "id": 1136, + "id": 1167, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1114, + "id": 1145, "literals": [ "solidity", "^", @@ -296,16 +296,16 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1135, + "id": 1166, "linearizedBaseContracts": [ - 1135 + 1166 ], "name": "Context", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1122, + "id": 1153, "nodeType": "Block", "src": "660:34:4", "statements": [ @@ -314,7 +314,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1119, + "id": 1150, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -325,7 +325,7 @@ "typeString": "msg" } }, - "id": 1120, + "id": 1151, "isConstant": false, "isLValue": false, "isPure": false, @@ -339,15 +339,15 @@ "typeString": "address payable" } }, - "functionReturnParameters": 1118, - "id": 1121, + "functionReturnParameters": 1149, + "id": 1152, "nodeType": "Return", "src": "670:17:4" } ] }, "documentation": null, - "id": 1123, + "id": 1154, "implemented": true, "kind": "function", "modifiers": [], @@ -355,23 +355,23 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1115, + "id": 1146, "nodeType": "ParameterList", "parameters": [], "src": "609:2:4" }, "returnParameters": { - "id": 1118, + "id": 1149, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1117, + "id": 1148, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1123, + "scope": 1154, "src": "643:15:4", "stateVariable": false, "storageLocation": "default", @@ -380,7 +380,7 @@ "typeString": "address payable" }, "typeName": { - "id": 1116, + "id": 1147, "name": "address", "nodeType": "ElementaryTypeName", "src": "643:15:4", @@ -396,7 +396,7 @@ ], "src": "642:17:4" }, - "scope": 1135, + "scope": 1166, "src": "590:104:4", "stateMutability": "view", "virtual": true, @@ -404,25 +404,25 @@ }, { "body": { - "id": 1133, + "id": 1164, "nodeType": "Block", "src": "765:165:4", "statements": [ { "expression": { "argumentTypes": null, - "id": 1128, + "id": 1159, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "775:4:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$1135", + "typeIdentifier": "t_contract$_Context_$1166", "typeString": "contract Context" } }, - "id": 1129, + "id": 1160, "nodeType": "ExpressionStatement", "src": "775:4:4" }, @@ -431,7 +431,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1130, + "id": 1161, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -442,7 +442,7 @@ "typeString": "msg" } }, - "id": 1131, + "id": 1162, "isConstant": false, "isLValue": false, "isPure": false, @@ -456,15 +456,15 @@ "typeString": "bytes calldata" } }, - "functionReturnParameters": 1127, - "id": 1132, + "functionReturnParameters": 1158, + "id": 1163, "nodeType": "Return", "src": "908:15:4" } ] }, "documentation": null, - "id": 1134, + "id": 1165, "implemented": true, "kind": "function", "modifiers": [], @@ -472,23 +472,23 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1124, + "id": 1155, "nodeType": "ParameterList", "parameters": [], "src": "717:2:4" }, "returnParameters": { - "id": 1127, + "id": 1158, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1126, + "id": 1157, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1134, + "scope": 1165, "src": "751:12:4", "stateVariable": false, "storageLocation": "memory", @@ -497,7 +497,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1125, + "id": 1156, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "751:5:4", @@ -512,14 +512,14 @@ ], "src": "750:14:4" }, - "scope": 1135, + "scope": 1166, "src": "700:230:4", "stateMutability": "view", "virtual": true, "visibility": "internal" } ], - "scope": 1136, + "scope": 1167, "src": "558:374:4" } ], @@ -527,15 +527,19 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:05.945Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.647Z", "devdoc": { - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/Counters.json b/abi/Counters.json index 3056534..4f591ae 100644 --- a/abi/Counters.json +++ b/abi/Counters.json @@ -1,9 +1,9 @@ { "contractName": "Counters", "abi": [], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matt Condon (@shrugs)\",\"details\":\"Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;` Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the {SafeMath} overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never directly accessed.\",\"methods\":{},\"title\":\"Counters\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Counters.sol\":\"Counters\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0x2d68b8e6425249cd05cc0a66ea50cb5b8d10cbdac59c6de834e1002232813faf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3ce6b6ac17c67bba01e9c8c778f82f68fd4823bd083359cdd03040b70eeeba3\",\"dweb:/ipfs/QmX4t1jWwKaAkacvmQxEG5rBtLXg3EHw6pRjKhMZR8iw3n\"]}},\"version\":1}", - "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203d7b872f2681c6dd3dcba5f785a18135bb586afe7421c623701434ec92e2de6664736f6c634300060a0033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203d7b872f2681c6dd3dcba5f785a18135bb586afe7421c623701434ec92e2de6664736f6c634300060a0033", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matt Condon (@shrugs)\",\"details\":\"Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;` Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the {SafeMath} overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never directly accessed.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Counters\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Counters.sol\":\"Counters\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0x2d68b8e6425249cd05cc0a66ea50cb5b8d10cbdac59c6de834e1002232813faf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3ce6b6ac17c67bba01e9c8c778f82f68fd4823bd083359cdd03040b70eeeba3\",\"dweb:/ipfs/QmX4t1jWwKaAkacvmQxEG5rBtLXg3EHw6pRjKhMZR8iw3n\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201b8e26072d3ac23213b5d95d5c54dbe43597c7fabd163c2b0df76b3be233b6f764736f6c634300060b0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201b8e26072d3ac23213b5d95d5c54dbe43597c7fabd163c2b0df76b3be233b6f764736f6c634300060b0033", "immutableReferences": {}, "sourceMap": "662:848:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", "deployedSourceMap": "662:848:18:-:0;;;;;;;;", @@ -13,15 +13,15 @@ "absolutePath": "@openzeppelin/contracts/utils/Counters.sol", "exportedSymbols": { "Counters": [ - 3270 + 3301 ] }, - "id": 3271, + "id": 3302, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 3222, + "id": 3253, "literals": [ "solidity", "^", @@ -34,10 +34,10 @@ { "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", "file": "../math/SafeMath.sol", - "id": 3223, + "id": 3254, "nodeType": "ImportDirective", - "scope": 3271, - "sourceUnit": 1864, + "scope": 3302, + "sourceUnit": 1895, "src": "58:30:18", "symbolAliases": [], "unitAlias": "" @@ -48,37 +48,37 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 3224, + "id": 3255, "nodeType": "StructuredDocumentation", "src": "90:571:18", "text": " @title Counters\n @author Matt Condon (@shrugs)\n @dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\n of elements in a mapping, issuing ERC721 ids, or counting request ids.\n Include with `using Counters for Counters.Counter;`\n Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the {SafeMath}\n overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\n directly accessed." }, "fullyImplemented": true, - "id": 3270, + "id": 3301, "linearizedBaseContracts": [ - 3270 + 3301 ], "name": "Counters", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3227, + "id": 3258, "libraryName": { "contractScope": null, - "id": 3225, + "id": 3256, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1863, + "referencedDeclaration": 1894, "src": "691:8:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1863", + "typeIdentifier": "t_contract$_SafeMath_$1894", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "685:27:18", "typeName": { - "id": 3226, + "id": 3257, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "704:7:18", @@ -90,16 +90,16 @@ }, { "canonicalName": "Counters.Counter", - "id": 3230, + "id": 3261, "members": [ { "constant": false, - "id": 3229, + "id": 3260, "mutability": "mutable", "name": "_value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3230, + "scope": 3261, "src": "1057:14:18", "stateVariable": false, "storageLocation": "default", @@ -108,7 +108,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3228, + "id": 3259, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1057:7:18", @@ -123,13 +123,13 @@ ], "name": "Counter", "nodeType": "StructDefinition", - "scope": 3270, + "scope": 3301, "src": "718:374:18", "visibility": "public" }, { "body": { - "id": 3240, + "id": 3271, "nodeType": "Block", "src": "1172:38:18", "statements": [ @@ -138,40 +138,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3237, + "id": 3268, "name": "counter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3232, + "referencedDeclaration": 3263, "src": "1189:7:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter storage pointer" } }, - "id": 3238, + "id": 3269, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_value", "nodeType": "MemberAccess", - "referencedDeclaration": 3229, + "referencedDeclaration": 3260, "src": "1189:14:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3236, - "id": 3239, + "functionReturnParameters": 3267, + "id": 3270, "nodeType": "Return", "src": "1182:21:18" } ] }, "documentation": null, - "id": 3241, + "id": 3272, "implemented": true, "kind": "function", "modifiers": [], @@ -179,33 +179,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3233, + "id": 3264, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3232, + "id": 3263, "mutability": "mutable", "name": "counter", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3241, + "scope": 3272, "src": "1115:23:18", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter" }, "typeName": { "contractScope": null, - "id": 3231, + "id": 3262, "name": "Counter", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3230, + "referencedDeclaration": 3261, "src": "1115:7:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter" } }, @@ -216,17 +216,17 @@ "src": "1114:25:18" }, "returnParameters": { - "id": 3236, + "id": 3267, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3235, + "id": 3266, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3241, + "scope": 3272, "src": "1163:7:18", "stateVariable": false, "storageLocation": "default", @@ -235,7 +235,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3234, + "id": 3265, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1163:7:18", @@ -250,7 +250,7 @@ ], "src": "1162:9:18" }, - "scope": 3270, + "scope": 3301, "src": "1098:112:18", "stateMutability": "view", "virtual": false, @@ -258,14 +258,14 @@ }, { "body": { - "id": 3252, + "id": 3283, "nodeType": "Block", "src": "1269:125:18", "statements": [ { "expression": { "argumentTypes": null, - "id": 3250, + "id": 3281, "isConstant": false, "isLValue": false, "isPure": false, @@ -274,25 +274,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3246, + "id": 3277, "name": "counter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3243, + "referencedDeclaration": 3274, "src": "1368:7:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter storage pointer" } }, - "id": 3248, + "id": 3279, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "_value", "nodeType": "MemberAccess", - "referencedDeclaration": 3229, + "referencedDeclaration": 3260, "src": "1368:14:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -304,7 +304,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 3249, + "id": 3280, "isConstant": false, "isLValue": false, "isPure": true, @@ -325,14 +325,14 @@ "typeString": "uint256" } }, - "id": 3251, + "id": 3282, "nodeType": "ExpressionStatement", "src": "1368:19:18" } ] }, "documentation": null, - "id": 3253, + "id": 3284, "implemented": true, "kind": "function", "modifiers": [], @@ -340,33 +340,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3244, + "id": 3275, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3243, + "id": 3274, "mutability": "mutable", "name": "counter", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3253, + "scope": 3284, "src": "1235:23:18", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter" }, "typeName": { "contractScope": null, - "id": 3242, + "id": 3273, "name": "Counter", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3230, + "referencedDeclaration": 3261, "src": "1235:7:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter" } }, @@ -377,12 +377,12 @@ "src": "1234:25:18" }, "returnParameters": { - "id": 3245, + "id": 3276, "nodeType": "ParameterList", "parameters": [], "src": "1269:0:18" }, - "scope": 3270, + "scope": 3301, "src": "1216:178:18", "stateMutability": "nonpayable", "virtual": false, @@ -390,14 +390,14 @@ }, { "body": { - "id": 3268, + "id": 3299, "nodeType": "Block", "src": "1453:55:18", "statements": [ { "expression": { "argumentTypes": null, - "id": 3266, + "id": 3297, "isConstant": false, "isLValue": false, "isPure": false, @@ -406,25 +406,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3258, + "id": 3289, "name": "counter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3255, + "referencedDeclaration": 3286, "src": "1463:7:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter storage pointer" } }, - "id": 3260, + "id": 3291, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "_value", "nodeType": "MemberAccess", - "referencedDeclaration": 3229, + "referencedDeclaration": 3260, "src": "1463:14:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -439,7 +439,7 @@ { "argumentTypes": null, "hexValue": "31", - "id": 3264, + "id": 3295, "isConstant": false, "isLValue": false, "isPure": true, @@ -466,46 +466,46 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3261, + "id": 3292, "name": "counter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3255, + "referencedDeclaration": 3286, "src": "1480:7:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter storage pointer" } }, - "id": 3262, + "id": 3293, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_value", "nodeType": "MemberAccess", - "referencedDeclaration": 3229, + "referencedDeclaration": 3260, "src": "1480:14:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3263, + "id": 3294, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1713, + "referencedDeclaration": 1744, "src": "1480:18:18", "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": 3265, + "id": 3296, "isConstant": false, "isLValue": false, "isPure": false, @@ -526,14 +526,14 @@ "typeString": "uint256" } }, - "id": 3267, + "id": 3298, "nodeType": "ExpressionStatement", "src": "1463:38:18" } ] }, "documentation": null, - "id": 3269, + "id": 3300, "implemented": true, "kind": "function", "modifiers": [], @@ -541,33 +541,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3256, + "id": 3287, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3255, + "id": 3286, "mutability": "mutable", "name": "counter", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3269, + "scope": 3300, "src": "1419:23:18", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter" }, "typeName": { "contractScope": null, - "id": 3254, + "id": 3285, "name": "Counter", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3230, + "referencedDeclaration": 3261, "src": "1419:7:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter" } }, @@ -578,19 +578,19 @@ "src": "1418:25:18" }, "returnParameters": { - "id": 3257, + "id": 3288, "nodeType": "ParameterList", "parameters": [], "src": "1453:0:18" }, - "scope": 3270, + "scope": 3301, "src": "1400:108:18", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" } ], - "scope": 3271, + "scope": 3302, "src": "662:848:18" } ], @@ -600,15 +600,15 @@ "absolutePath": "@openzeppelin/contracts/utils/Counters.sol", "exportedSymbols": { "Counters": [ - 3270 + 3301 ] }, - "id": 3271, + "id": 3302, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 3222, + "id": 3253, "literals": [ "solidity", "^", @@ -621,10 +621,10 @@ { "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", "file": "../math/SafeMath.sol", - "id": 3223, + "id": 3254, "nodeType": "ImportDirective", - "scope": 3271, - "sourceUnit": 1864, + "scope": 3302, + "sourceUnit": 1895, "src": "58:30:18", "symbolAliases": [], "unitAlias": "" @@ -635,37 +635,37 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 3224, + "id": 3255, "nodeType": "StructuredDocumentation", "src": "90:571:18", "text": " @title Counters\n @author Matt Condon (@shrugs)\n @dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\n of elements in a mapping, issuing ERC721 ids, or counting request ids.\n Include with `using Counters for Counters.Counter;`\n Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the {SafeMath}\n overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\n directly accessed." }, "fullyImplemented": true, - "id": 3270, + "id": 3301, "linearizedBaseContracts": [ - 3270 + 3301 ], "name": "Counters", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3227, + "id": 3258, "libraryName": { "contractScope": null, - "id": 3225, + "id": 3256, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1863, + "referencedDeclaration": 1894, "src": "691:8:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1863", + "typeIdentifier": "t_contract$_SafeMath_$1894", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "685:27:18", "typeName": { - "id": 3226, + "id": 3257, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "704:7:18", @@ -677,16 +677,16 @@ }, { "canonicalName": "Counters.Counter", - "id": 3230, + "id": 3261, "members": [ { "constant": false, - "id": 3229, + "id": 3260, "mutability": "mutable", "name": "_value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3230, + "scope": 3261, "src": "1057:14:18", "stateVariable": false, "storageLocation": "default", @@ -695,7 +695,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3228, + "id": 3259, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1057:7:18", @@ -710,13 +710,13 @@ ], "name": "Counter", "nodeType": "StructDefinition", - "scope": 3270, + "scope": 3301, "src": "718:374:18", "visibility": "public" }, { "body": { - "id": 3240, + "id": 3271, "nodeType": "Block", "src": "1172:38:18", "statements": [ @@ -725,40 +725,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3237, + "id": 3268, "name": "counter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3232, + "referencedDeclaration": 3263, "src": "1189:7:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter storage pointer" } }, - "id": 3238, + "id": 3269, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_value", "nodeType": "MemberAccess", - "referencedDeclaration": 3229, + "referencedDeclaration": 3260, "src": "1189:14:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3236, - "id": 3239, + "functionReturnParameters": 3267, + "id": 3270, "nodeType": "Return", "src": "1182:21:18" } ] }, "documentation": null, - "id": 3241, + "id": 3272, "implemented": true, "kind": "function", "modifiers": [], @@ -766,33 +766,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3233, + "id": 3264, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3232, + "id": 3263, "mutability": "mutable", "name": "counter", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3241, + "scope": 3272, "src": "1115:23:18", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter" }, "typeName": { "contractScope": null, - "id": 3231, + "id": 3262, "name": "Counter", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3230, + "referencedDeclaration": 3261, "src": "1115:7:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter" } }, @@ -803,17 +803,17 @@ "src": "1114:25:18" }, "returnParameters": { - "id": 3236, + "id": 3267, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3235, + "id": 3266, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3241, + "scope": 3272, "src": "1163:7:18", "stateVariable": false, "storageLocation": "default", @@ -822,7 +822,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3234, + "id": 3265, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1163:7:18", @@ -837,7 +837,7 @@ ], "src": "1162:9:18" }, - "scope": 3270, + "scope": 3301, "src": "1098:112:18", "stateMutability": "view", "virtual": false, @@ -845,14 +845,14 @@ }, { "body": { - "id": 3252, + "id": 3283, "nodeType": "Block", "src": "1269:125:18", "statements": [ { "expression": { "argumentTypes": null, - "id": 3250, + "id": 3281, "isConstant": false, "isLValue": false, "isPure": false, @@ -861,25 +861,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3246, + "id": 3277, "name": "counter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3243, + "referencedDeclaration": 3274, "src": "1368:7:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter storage pointer" } }, - "id": 3248, + "id": 3279, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "_value", "nodeType": "MemberAccess", - "referencedDeclaration": 3229, + "referencedDeclaration": 3260, "src": "1368:14:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -891,7 +891,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 3249, + "id": 3280, "isConstant": false, "isLValue": false, "isPure": true, @@ -912,14 +912,14 @@ "typeString": "uint256" } }, - "id": 3251, + "id": 3282, "nodeType": "ExpressionStatement", "src": "1368:19:18" } ] }, "documentation": null, - "id": 3253, + "id": 3284, "implemented": true, "kind": "function", "modifiers": [], @@ -927,33 +927,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3244, + "id": 3275, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3243, + "id": 3274, "mutability": "mutable", "name": "counter", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3253, + "scope": 3284, "src": "1235:23:18", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter" }, "typeName": { "contractScope": null, - "id": 3242, + "id": 3273, "name": "Counter", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3230, + "referencedDeclaration": 3261, "src": "1235:7:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter" } }, @@ -964,12 +964,12 @@ "src": "1234:25:18" }, "returnParameters": { - "id": 3245, + "id": 3276, "nodeType": "ParameterList", "parameters": [], "src": "1269:0:18" }, - "scope": 3270, + "scope": 3301, "src": "1216:178:18", "stateMutability": "nonpayable", "virtual": false, @@ -977,14 +977,14 @@ }, { "body": { - "id": 3268, + "id": 3299, "nodeType": "Block", "src": "1453:55:18", "statements": [ { "expression": { "argumentTypes": null, - "id": 3266, + "id": 3297, "isConstant": false, "isLValue": false, "isPure": false, @@ -993,25 +993,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3258, + "id": 3289, "name": "counter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3255, + "referencedDeclaration": 3286, "src": "1463:7:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter storage pointer" } }, - "id": 3260, + "id": 3291, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "_value", "nodeType": "MemberAccess", - "referencedDeclaration": 3229, + "referencedDeclaration": 3260, "src": "1463:14:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1026,7 +1026,7 @@ { "argumentTypes": null, "hexValue": "31", - "id": 3264, + "id": 3295, "isConstant": false, "isLValue": false, "isPure": true, @@ -1053,46 +1053,46 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3261, + "id": 3292, "name": "counter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3255, + "referencedDeclaration": 3286, "src": "1480:7:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter storage pointer" } }, - "id": 3262, + "id": 3293, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_value", "nodeType": "MemberAccess", - "referencedDeclaration": 3229, + "referencedDeclaration": 3260, "src": "1480:14:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3263, + "id": 3294, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1713, + "referencedDeclaration": 1744, "src": "1480:18:18", "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": 3265, + "id": 3296, "isConstant": false, "isLValue": false, "isPure": false, @@ -1113,14 +1113,14 @@ "typeString": "uint256" } }, - "id": 3267, + "id": 3298, "nodeType": "ExpressionStatement", "src": "1463:38:18" } ] }, "documentation": null, - "id": 3269, + "id": 3300, "implemented": true, "kind": "function", "modifiers": [], @@ -1128,33 +1128,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3256, + "id": 3287, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3255, + "id": 3286, "mutability": "mutable", "name": "counter", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3269, + "scope": 3300, "src": "1419:23:18", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter" }, "typeName": { "contractScope": null, - "id": 3254, + "id": 3285, "name": "Counter", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3230, + "referencedDeclaration": 3261, "src": "1419:7:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter" } }, @@ -1165,19 +1165,19 @@ "src": "1418:25:18" }, "returnParameters": { - "id": 3257, + "id": 3288, "nodeType": "ParameterList", "parameters": [], "src": "1453:0:18" }, - "scope": 3270, + "scope": 3301, "src": "1400:108:18", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" } ], - "scope": 3271, + "scope": 3302, "src": "662:848:18" } ], @@ -1185,18 +1185,22 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:06.006Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.732Z", "devdoc": { "author": "Matt Condon (@shrugs)", "details": "Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;` Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the {SafeMath} overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never directly accessed.", + "kind": "dev", "methods": {}, - "title": "Counters" + "title": "Counters", + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/DSChiefLike.json b/abi/DSChiefLike.json index 566512e..5d96c4d 100644 --- a/abi/DSChiefLike.json +++ b/abi/DSChiefLike.json @@ -21,13 +21,13 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"votes\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/sencha/maker-badges/contracts/MakerBadges.sol\":\"DSChiefLike\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/sencha/maker-badges/contracts/MakerBadges.sol\":{\"keccak256\":\"0x570c9a022411ed8db97e8acc575d01f784e70e13649a1fd2235174933f2886f8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d921c4b81919585f53c69fbfdf7e6745aa4b48ef7d602bd89f50c3acc850c27e\",\"dweb:/ipfs/QmQDWFVCvE9sc4SNVuTUg5gyh5FdsBhzhxv2hfGJWHaiyN\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x92f7900d382761c7faefeaced81c6b4f1aae909ed0551803bfe8f27101956360\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://407c0864143968542e5cf5aa7556916d2cf292b201e3dadb65662e9a3aa24187\",\"dweb:/ipfs/QmSnXzYAUaGLGr7uofRbgQraTJvatbjQLBPhyYiMd18oUJ\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c\",\"dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"votes\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/sencha/maker-badges/contracts/MakerBadges.sol\":\"DSChiefLike\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/sencha/maker-badges/contracts/MakerBadges.sol\":{\"keccak256\":\"0x6c6ddbe292dbaed58b0aed79aea5edc21e6e3503f6988e50ffcb339050f3b010\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://66c4800e34af2d3ac348a783f351aa3f83f9d96389d774719efad2759bb8ccba\",\"dweb:/ipfs/QmZcMk7ehVeMvdifFd3bWfUeL4qXD5oMm1w1LwfttxmASr\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x92f7900d382761c7faefeaced81c6b4f1aae909ed0551803bfe8f27101956360\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://407c0864143968542e5cf5aa7556916d2cf292b201e3dadb65662e9a3aa24187\",\"dweb:/ipfs/QmSnXzYAUaGLGr7uofRbgQraTJvatbjQLBPhyYiMd18oUJ\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c\",\"dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, "sourceMap": "", "deployedSourceMap": "", - "source": "/// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.6.10;\npragma experimental ABIEncoderV2;\n\n\n/// @title Non-transferable Badges for Maker Ecosystem Activity, CDIP 18\n/// @author Nazzareno Massari @naszam\n/// @notice MakerBadges to check for activities on maker ecosystem and keep track of redeemers\n/// @dev See https://github.com/makerdao/community/issues/537\n/// @dev All function calls are currently implemented without side effects through TDD approach\n/// @dev OpenZeppelin library is used for secure contract development\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport \"@openzeppelin/contracts/utils/Pausable.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"@openzeppelin/contracts/utils/EnumerableSet.sol\";\n\ninterface PotLike {\n\n function pie(address guy) external view returns (uint256);\n function chi() external view returns (uint256);\n function rho() external view returns (uint256);\n function drip() external view returns (uint256);\n\n}\n\ninterface DSChiefLike {\n function votes(address) external view returns (bytes32);\n}\n\ninterface FlipperLike {\n struct Bid {\n uint256 bid;\n uint256 lot;\n address guy;\n uint48 tic;\n uint48 end;\n address usr;\n address gal;\n uint256 tab;\n}\n function bids(uint256) external view returns (Bid memory);\n}\n\ncontract MakerBadges is Ownable, AccessControl, Pausable {\n\n /// @dev Libraries\n using SafeMath for uint256;\n using EnumerableSet for EnumerableSet.AddressSet;\n\n bytes32 public constant PAUSER_ROLE = keccak256(\"PAUSER_ROLE\");\n\n bytes32[] public roots;\n\n mapping (uint256 => EnumerableSet.AddressSet) private redeemers;\n\n /// @dev Events\n event PotChecked(address guy);\n event DSChiefChecked(address guy);\n event FlipperChecked(address guy);\n\n /// @dev Data\n PotLike internal immutable pot;\n DSChiefLike internal immutable chief;\n FlipperLike internal immutable flipper;\n\n /// @dev Math\n uint256 constant RAY = 10 ** 27;\n\n function rmul(uint256 x, uint256 y) internal view whenNotPaused returns (uint256 z) {\n /// @dev always rounds down\n z = x.mul(y) / RAY;\n }\n\n constructor() public {\n _setupRole(DEFAULT_ADMIN_ROLE, owner());\n\n _setupRole(PAUSER_ROLE, owner());\n\n /// @dev MCD_POT Kovan Address https://kovan.etherscan.io/address/0xea190dbdc7adf265260ec4da6e9675fd4f5a78bb#code\n\tpot = PotLike(0xEA190DBDC7adF265260ec4dA6e9675Fd4f5A78bb);\n\n /// @dev MCD_ADM Kovan Address https://kovan.etherscan.io/address/0xbBFFC76e94B34F72D96D054b31f6424249c1337d#code\n chief = DSChiefLike(0xbBFFC76e94B34F72D96D054b31f6424249c1337d);\n\n /// @dev MCD_FLIP_ETH_A Kovan Address https://kovan.etherscan.io/address/0xB40139Ea36D35d0C9F6a2e62601B616F1FfbBD1b#code\n flipper = FlipperLike(0xB40139Ea36D35d0C9F6a2e62601B616F1FfbBD1b);\n\n }\n\n /// @notice Fallback function\n /// @dev Added not payable to revert transactions not matching any other function which send value\n fallback() external {\n revert();\n }\n\n /// @notice Set Merkle Tree Root Hashes array\n /// @dev Called by owner to update roots for different address batches by templateId\n /// @param rootHashes Root hashes of the Merkle Trees by templateId\n /// @return True if successfully updated\n function setRootHashes(bytes32[] calldata rootHashes) external onlyOwner whenNotPaused returns (bool) {\n roots = rootHashes;\n return true;\n }\n\n /// @notice Return the accrued interest of guy on Pot\n /// @dev Based on Chai dai() function\n /// @param guy Address to check\n /// @return wad Accrued interest of guy\n function _dai(address guy) private view whenNotPaused returns (uint256 wad) {\n uint256 slice = pot.pie(guy);\n uint256 chi = (now > pot.rho()) ? pot.drip() : pot.chi();\n wad = rmul(slice, chi);\n }\n\n /// @notice Pot Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @return True if the caller successfully checked for activity on Pot\n function potChallenge(uint256 templateId) external whenNotPaused returns (bool) {\n require(_dai(msg.sender) >= 1 ether, \"Caller has not accrued 1 or more Dai interest on Pot\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit PotChecked(msg.sender);\n return true;\n }\n\n /// @notice DSChief Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @return True if the caller successfully checked for activity on DSChief\n function chiefChallenge(uint256 templateId) external whenNotPaused returns (bool) {\n require(chief.votes(msg.sender) != 0x00, \"Caller is not voting in a Governance Poll\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit DSChiefChecked(msg.sender);\n return true;\n }\n\n /// @notice Flipper Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @dev guy, high bidder\n /// @return True if the caller successfully checked for activity on Flipper\n function flipperChallenge(uint256 templateId, uint256 bidId) external whenNotPaused returns (bool) {\n require(flipper.bids(bidId).guy == msg.sender, \"Caller is not the high bidder in the current Bid in Collateral Auctions\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit FlipperChecked(msg.sender);\n return true;\n }\n\n /// @notice Check if guy is a redeemer\n /// @dev Verify if the address of guy exists\n /// @param guy Address to verify\n /// @return True if guy is a redeemer\n function verify(uint256 templateId, address guy) external view whenNotPaused returns (bool) {\n return redeemers[templateId].contains(guy);\n }\n\n /// @notice Pause all the functions\n /// @dev the caller must have the 'PAUSER_ROLE'\n function pause() external {\n require(hasRole(PAUSER_ROLE, msg.sender), \"MakerBadges: must have pauser role to pause\");\n _pause();\n }\n\n /// @notice Unpause all the functions\n /// @dev the caller must have the 'PAUSER_ROLE'\n function unpause() external {\n require(hasRole(PAUSER_ROLE, msg.sender), \"MakerBadges: must have pauser role to unpause\");\n _unpause();\n }\n\n}\n", + "source": "/// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.6.11;\npragma experimental ABIEncoderV2;\n\n\n/// @title Non-transferable Badges for Maker Ecosystem Activity, CDIP 18\n/// @author Nazzareno Massari @naszam\n/// @notice MakerBadges to check for activities on maker ecosystem and keep track of redeemers\n/// @dev See https://github.com/makerdao/community/issues/537\n/// @dev All function calls are currently implemented without side effects through TDD approach\n/// @dev OpenZeppelin library is used for secure contract development\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport \"@openzeppelin/contracts/utils/Pausable.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"@openzeppelin/contracts/utils/EnumerableSet.sol\";\n\ninterface PotLike {\n\n function pie(address guy) external view returns (uint256);\n function chi() external view returns (uint256);\n function rho() external view returns (uint256);\n function drip() external view returns (uint256);\n\n}\n\ninterface DSChiefLike {\n function votes(address) external view returns (bytes32);\n}\n\ninterface FlipperLike {\n struct Bid {\n uint256 bid;\n uint256 lot;\n address guy;\n uint48 tic;\n uint48 end;\n address usr;\n address gal;\n uint256 tab;\n}\n function bids(uint256) external view returns (Bid memory);\n}\n\ncontract MakerBadges is Ownable, AccessControl, Pausable {\n\n /// @dev Libraries\n using SafeMath for uint256;\n using EnumerableSet for EnumerableSet.AddressSet;\n\n bytes32 public constant ADMIN_ROLE = keccak256(\"ADMIN_ROLE\");\n bytes32 public constant PAUSER_ROLE = keccak256(\"PAUSER_ROLE\");\n\n bytes32[] public roots;\n\n mapping (uint256 => EnumerableSet.AddressSet) private redeemers;\n\n /// @dev Events\n event PotChecked(address guy);\n event DSChiefChecked(address guy);\n event FlipperChecked(address guy);\n\n /// @dev Data\n PotLike internal immutable pot;\n DSChiefLike internal immutable chief;\n FlipperLike internal immutable flipper;\n\n /// @dev Math\n uint256 constant RAY = 10 ** 27;\n\n function rmul(uint256 x, uint256 y) internal view whenNotPaused returns (uint256 z) {\n /// @dev always rounds down\n z = x.mul(y) / RAY;\n }\n\n constructor(address pot_, address chief_, address flipper_) public {\n _setupRole(DEFAULT_ADMIN_ROLE, owner());\n\n _setupRole(ADMIN_ROLE, owner());\n _setupRole(PAUSER_ROLE, owner());\n\n /// @dev MCD_POT Address\n pot = PotLike(pot_);\n\n /// @dev MCD_ADM Address\n chief = DSChiefLike(chief_);\n\n /// @dev MCD_FLIP_ETH_A Address\n flipper = FlipperLike(flipper_);\n\n }\n\n /// @notice Fallback function\n /// @dev Added not payable to revert transactions not matching any other function which send value\n fallback() external {\n revert();\n }\n\n /// @dev Modifiers\n modifier onlyAdmin() {\n require(hasRole(ADMIN_ROLE, msg.sender), \"Caller is not an admin\");\n _;\n }\n\n\n /// @notice Set Merkle Tree Root Hashes array\n /// @dev Called by owner to update roots for different address batches by templateId\n /// @param rootHashes Root hashes of the Merkle Trees by templateId\n /// @return True if successfully updated\n function setRootHashes(bytes32[] calldata rootHashes) external onlyAdmin whenNotPaused returns (bool) {\n roots = rootHashes;\n return true;\n }\n\n /// @notice Return the accrued interest of guy on Pot\n /// @dev Based on Chai dai() function\n /// @param guy Address to check\n /// @return wad Accrued interest of guy\n function _dai(address guy) private view whenNotPaused returns (uint256 wad) {\n uint256 slice = pot.pie(guy);\n uint256 chi = (now > pot.rho()) ? pot.drip() : pot.chi();\n wad = rmul(slice, chi);\n }\n\n /// @notice Pot Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @return True if the caller successfully checked for activity on Pot\n function potChallenge(uint256 templateId) external whenNotPaused returns (bool) {\n require(_dai(msg.sender) >= 1 ether, \"Caller has not accrued 1 or more Dai interest on Pot\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit PotChecked(msg.sender);\n return true;\n }\n\n /// @notice DSChief Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @return True if the caller successfully checked for activity on DSChief\n function chiefChallenge(uint256 templateId) external whenNotPaused returns (bool) {\n require(chief.votes(msg.sender) != 0x00, \"Caller is not voting in an Executive Spell\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit DSChiefChecked(msg.sender);\n return true;\n }\n\n /// @notice Flipper Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @dev guy, high bidder\n /// @return True if the caller successfully checked for activity on Flipper\n function flipperChallenge(uint256 templateId, uint256 bidId) external whenNotPaused returns (bool) {\n require(flipper.bids(bidId).guy == msg.sender, \"Caller is not the high bidder in the current Bid in Collateral Auctions\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit FlipperChecked(msg.sender);\n return true;\n }\n\n /// @notice Check if guy is a redeemer\n /// @dev Verify if the address of guy exists\n /// @param guy Address to verify\n /// @return True if guy is a redeemer\n function verify(uint256 templateId, address guy) external view whenNotPaused returns (bool) {\n return redeemers[templateId].contains(guy);\n }\n\n /// @notice Pause all the functions\n /// @dev the caller must have the 'PAUSER_ROLE'\n function pause() external {\n require(hasRole(PAUSER_ROLE, msg.sender), \"MakerBadges: must have pauser role to pause\");\n _pause();\n }\n\n /// @notice Unpause all the functions\n /// @dev the caller must have the 'PAUSER_ROLE'\n function unpause() external {\n require(hasRole(PAUSER_ROLE, msg.sender), \"MakerBadges: must have pauser role to unpause\");\n _unpause();\n }\n\n}\n", "sourcePath": "/home/sencha/maker-badges/contracts/MakerBadges.sol", "ast": { "absolutePath": "/home/sencha/maker-badges/contracts/MakerBadges.sol", @@ -39,13 +39,13 @@ 697 ], "MakerBadges": [ - 1075 + 1106 ], "PotLike": [ 664 ] }, - "id": 1076, + "id": 1107, "license": "GPL-3.0", "nodeType": "SourceUnit", "nodes": [ @@ -54,7 +54,7 @@ "literals": [ "solidity", "0.6", - ".10" + ".11" ], "nodeType": "PragmaDirective", "src": "37:23:2" @@ -73,8 +73,8 @@ "file": "@openzeppelin/contracts/access/Ownable.sol", "id": 637, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1528, + "scope": 1107, + "sourceUnit": 1559, "src": "532:52:2", "symbolAliases": [], "unitAlias": "" @@ -84,8 +84,8 @@ "file": "@openzeppelin/contracts/access/AccessControl.sol", "id": 638, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1419, + "scope": 1107, + "sourceUnit": 1450, "src": "585:58:2", "symbolAliases": [], "unitAlias": "" @@ -95,8 +95,8 @@ "file": "@openzeppelin/contracts/utils/Pausable.sol", "id": 639, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 4211, + "scope": 1107, + "sourceUnit": 4242, "src": "644:52:2", "symbolAliases": [], "unitAlias": "" @@ -106,8 +106,8 @@ "file": "@openzeppelin/contracts/math/SafeMath.sol", "id": 640, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1864, + "scope": 1107, + "sourceUnit": 1895, "src": "697:51:2", "symbolAliases": [], "unitAlias": "" @@ -117,8 +117,8 @@ "file": "@openzeppelin/contracts/utils/EnumerableSet.sol", "id": 641, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 4121, + "scope": 1107, + "sourceUnit": 4152, "src": "749:57:2", "symbolAliases": [], "unitAlias": "" @@ -400,7 +400,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "808:243:2" }, { @@ -506,7 +506,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "1053:84:2" }, { @@ -851,7 +851,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "1139:240:2" }, { @@ -864,10 +864,10 @@ "id": 698, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1527, + "referencedDeclaration": 1558, "src": "1405:7:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$1527", + "typeIdentifier": "t_contract$_Ownable_$1558", "typeString": "contract Ownable" } }, @@ -882,10 +882,10 @@ "id": 700, "name": "AccessControl", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1418, + "referencedDeclaration": 1449, "src": "1414:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_AccessControl_$1418", + "typeIdentifier": "t_contract$_AccessControl_$1449", "typeString": "contract AccessControl" } }, @@ -900,10 +900,10 @@ "id": 702, "name": "Pausable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4210, + "referencedDeclaration": 4241, "src": "1429:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pausable_$4210", + "typeIdentifier": "t_contract$_Pausable_$4241", "typeString": "contract Pausable" } }, @@ -913,21 +913,21 @@ } ], "contractDependencies": [ - 1135, - 1418, - 1527, - 4210 + 1166, + 1449, + 1558, + 4241 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1075, + "id": 1106, "linearizedBaseContracts": [ - 1075, - 4210, - 1418, - 1527, - 1135 + 1106, + 4241, + 1449, + 1558, + 1166 ], "name": "MakerBadges", "nodeType": "ContractDefinition", @@ -939,10 +939,10 @@ "id": 704, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1863, + "referencedDeclaration": 1894, "src": "1470:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1863", + "typeIdentifier": "t_contract$_SafeMath_$1894", "typeString": "library SafeMath" } }, @@ -966,10 +966,10 @@ "id": 707, "name": "EnumerableSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4120, + "referencedDeclaration": 4151, "src": "1500:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_EnumerableSet_$4120", + "typeIdentifier": "t_contract$_EnumerableSet_$4151", "typeString": "library EnumerableSet" } }, @@ -980,24 +980,24 @@ "id": 708, "name": "EnumerableSet.AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, + "referencedDeclaration": 3947, "src": "1518:24:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } } }, { "constant": true, - "functionSelector": "e63ab1e9", + "functionSelector": "75b238fc", "id": 714, "mutability": "constant", - "name": "PAUSER_ROLE", + "name": "ADMIN_ROLE", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1547:62:2", + "scope": 1106, + "src": "1547:60:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1019,7 +1019,7 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "5041555345525f524f4c45", + "hexValue": "41444d494e5f524f4c45", "id": 712, "isConstant": false, "isLValue": false, @@ -1027,7 +1027,90 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1595:13:2", + "src": "1594:12:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", + "typeString": "literal_string \"ADMIN_ROLE\"" + }, + "value": "ADMIN_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", + "typeString": "literal_string \"ADMIN_ROLE\"" + } + ], + "id": 711, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1584:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1584:23:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "e63ab1e9", + "id": 719, + "mutability": "constant", + "name": "PAUSER_ROLE", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1106, + "src": "1611:62:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 715, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1611:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "5041555345525f524f4c45", + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1659:13:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a", @@ -1043,18 +1126,18 @@ "typeString": "literal_string \"PAUSER_ROLE\"" } ], - "id": 711, + "id": 716, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "1585:9:2", + "src": "1649:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 713, + "id": 718, "isConstant": false, "isLValue": false, "isPure": true, @@ -1062,7 +1145,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1585:24:2", + "src": "1649:24:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1074,13 +1157,13 @@ { "constant": false, "functionSelector": "c2b40ae4", - "id": 717, + "id": 722, "mutability": "mutable", "name": "roots", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1614:22:2", + "scope": 1106, + "src": "1678:22:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1089,19 +1172,19 @@ }, "typeName": { "baseType": { - "id": 715, + "id": 720, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1614:7:2", + "src": "1678:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 716, + "id": 721, "length": null, "nodeType": "ArrayTypeName", - "src": "1614:9:2", + "src": "1678:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -1112,46 +1195,46 @@ }, { "constant": false, - "id": 721, + "id": 726, "mutability": "mutable", "name": "redeemers", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1641:63:2", + "scope": 1106, + "src": "1705:63:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet)" }, "typeName": { - "id": 720, + "id": 725, "keyType": { - "id": 718, + "id": 723, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1650:7:2", + "src": "1714:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "1641:45:2", + "src": "1705:45:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet)" }, "valueType": { "contractScope": null, - "id": 719, + "id": 724, "name": "EnumerableSet.AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, - "src": "1661:24:2", + "referencedDeclaration": 3947, + "src": "1725:24:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } } @@ -1162,28 +1245,28 @@ { "anonymous": false, "documentation": { - "id": 722, + "id": 727, "nodeType": "StructuredDocumentation", - "src": "1709:15:2", + "src": "1773:15:2", "text": "@dev Events" }, - "id": 726, + "id": 731, "name": "PotChecked", "nodeType": "EventDefinition", "parameters": { - "id": 725, + "id": 730, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 724, + "id": 729, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 726, - "src": "1744:11:2", + "scope": 731, + "src": "1808:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1191,10 +1274,10 @@ "typeString": "address" }, "typeName": { - "id": 723, + "id": 728, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1744:7:2", + "src": "1808:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1205,30 +1288,30 @@ "visibility": "internal" } ], - "src": "1743:13:2" + "src": "1807:13:2" }, - "src": "1727:30:2" + "src": "1791:30:2" }, { "anonymous": false, "documentation": null, - "id": 730, + "id": 735, "name": "DSChiefChecked", "nodeType": "EventDefinition", "parameters": { - "id": 729, + "id": 734, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 728, + "id": 733, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 730, - "src": "1781:11:2", + "scope": 735, + "src": "1845:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1236,10 +1319,10 @@ "typeString": "address" }, "typeName": { - "id": 727, + "id": 732, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1781:7:2", + "src": "1845:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1250,30 +1333,30 @@ "visibility": "internal" } ], - "src": "1780:13:2" + "src": "1844:13:2" }, - "src": "1760:34:2" + "src": "1824:34:2" }, { "anonymous": false, "documentation": null, - "id": 734, + "id": 739, "name": "FlipperChecked", "nodeType": "EventDefinition", "parameters": { - "id": 733, + "id": 738, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 732, + "id": 737, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 734, - "src": "1818:11:2", + "scope": 739, + "src": "1882:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1281,10 +1364,10 @@ "typeString": "address" }, "typeName": { - "id": 731, + "id": 736, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1818:7:2", + "src": "1882:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1295,25 +1378,25 @@ "visibility": "internal" } ], - "src": "1817:13:2" + "src": "1881:13:2" }, - "src": "1797:34:2" + "src": "1861:34:2" }, { "constant": false, "documentation": { - "id": 735, + "id": 740, "nodeType": "StructuredDocumentation", - "src": "1835:13:2", + "src": "1899:13:2", "text": "@dev Data" }, - "id": 737, + "id": 742, "mutability": "immutable", "name": "pot", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1851:31:2", + "scope": 1106, + "src": "1915:31:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1322,11 +1405,11 @@ }, "typeName": { "contractScope": null, - "id": 736, + "id": 741, "name": "PotLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 664, - "src": "1851:7:2", + "src": "1915:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" @@ -1337,13 +1420,13 @@ }, { "constant": false, - "id": 739, + "id": 744, "mutability": "immutable", "name": "chief", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1886:36:2", + "scope": 1106, + "src": "1950:36:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1352,11 +1435,11 @@ }, "typeName": { "contractScope": null, - "id": 738, + "id": 743, "name": "DSChiefLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 672, - "src": "1886:11:2", + "src": "1950:11:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" @@ -1367,13 +1450,13 @@ }, { "constant": false, - "id": 741, + "id": 746, "mutability": "immutable", "name": "flipper", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1926:38:2", + "scope": 1106, + "src": "1990:38:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1382,11 +1465,11 @@ }, "typeName": { "contractScope": null, - "id": 740, + "id": 745, "name": "FlipperLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 697, - "src": "1926:11:2", + "src": "1990:11:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" @@ -1398,18 +1481,18 @@ { "constant": true, "documentation": { - "id": 742, + "id": 747, "nodeType": "StructuredDocumentation", - "src": "1969:13:2", + "src": "2033:13:2", "text": "@dev Math" }, - "id": 747, + "id": 752, "mutability": "constant", "name": "RAY", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1985:31:2", + "scope": 1106, + "src": "2049:31:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1417,10 +1500,10 @@ "typeString": "uint256" }, "typeName": { - "id": 743, + "id": 748, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1985:7:2", + "src": "2049:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1432,7 +1515,7 @@ "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" }, - "id": 746, + "id": 751, "isConstant": false, "isLValue": false, "isPure": true, @@ -1440,14 +1523,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 744, + "id": 749, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2008:2:2", + "src": "2072:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -1460,14 +1543,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3237", - "id": 745, + "id": 750, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2014:2:2", + "src": "2078:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_27_by_1", @@ -1475,7 +1558,7 @@ }, "value": "27" }, - "src": "2008:8:2", + "src": "2072:8:2", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" @@ -1485,26 +1568,26 @@ }, { "body": { - "id": 767, + "id": 772, "nodeType": "Block", - "src": "2105:73:2", + "src": "2169:73:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 765, + "id": 770, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 758, + "id": 763, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 756, - "src": "2155:1:2", + "referencedDeclaration": 761, + "src": "2219:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1518,7 +1601,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 764, + "id": 769, "isConstant": false, "isLValue": false, "isPure": false, @@ -1528,12 +1611,12 @@ "arguments": [ { "argumentTypes": null, - "id": 761, + "id": 766, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 751, - "src": "2165:1:2", + "referencedDeclaration": 756, + "src": "2229:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1549,32 +1632,32 @@ ], "expression": { "argumentTypes": null, - "id": 759, + "id": 764, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "2159:1:2", + "referencedDeclaration": 754, + "src": "2223:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 760, + "id": 765, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 1776, - "src": "2159:5:2", + "referencedDeclaration": 1807, + "src": "2223:5: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": 762, + "id": 767, "isConstant": false, "isLValue": false, "isPure": false, @@ -1582,7 +1665,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2159:8:2", + "src": "2223:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1593,76 +1676,76 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 763, + "id": 768, "name": "RAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 747, - "src": "2170:3:2", + "referencedDeclaration": 752, + "src": "2234:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2159:14:2", + "src": "2223:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2155:18:2", + "src": "2219:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 766, + "id": 771, "nodeType": "ExpressionStatement", - "src": "2155:18:2" + "src": "2219:18:2" } ] }, "documentation": null, - "id": 768, + "id": 773, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 754, + "id": 759, "modifierName": { "argumentTypes": null, - "id": 753, + "id": 758, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "2071:13:2", + "referencedDeclaration": 4198, + "src": "2135:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2071:13:2" + "src": "2135:13:2" } ], "name": "rmul", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 752, + "id": 757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 749, + "id": 754, "mutability": "mutable", "name": "x", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2035:9:2", + "scope": 773, + "src": "2099:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1670,10 +1753,10 @@ "typeString": "uint256" }, "typeName": { - "id": 748, + "id": 753, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2035:7:2", + "src": "2099:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1684,13 +1767,13 @@ }, { "constant": false, - "id": 751, + "id": 756, "mutability": "mutable", "name": "y", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2046:9:2", + "scope": 773, + "src": "2110:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1698,10 +1781,10 @@ "typeString": "uint256" }, "typeName": { - "id": 750, + "id": 755, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2046:7:2", + "src": "2110:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1711,21 +1794,21 @@ "visibility": "internal" } ], - "src": "2034:22:2" + "src": "2098:22:2" }, "returnParameters": { - "id": 757, + "id": 762, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 756, + "id": 761, "mutability": "mutable", "name": "z", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2094:9:2", + "scope": 773, + "src": "2158:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1733,10 +1816,10 @@ "typeString": "uint256" }, "typeName": { - "id": 755, + "id": 760, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2094:7:2", + "src": "2158:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1746,19 +1829,19 @@ "visibility": "internal" } ], - "src": "2093:11:2" + "src": "2157:11:2" }, - "scope": 1075, - "src": "2021:157:2", + "scope": 1106, + "src": "2085:157:2", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 801, + "id": 818, "nodeType": "Block", - "src": "2203:682:2", + "src": "2313:355:2", "statements": [ { "expression": { @@ -1766,12 +1849,12 @@ "arguments": [ { "argumentTypes": null, - "id": 772, + "id": 783, "name": "DEFAULT_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1161, - "src": "2224:18:2", + "referencedDeclaration": 1192, + "src": "2334:18:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1782,18 +1865,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 773, + "id": 784, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "2244:5:2", + "referencedDeclaration": 1494, + "src": "2354:5:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 774, + "id": 785, "isConstant": false, "isLValue": false, "isPure": false, @@ -1801,7 +1884,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2244:7:2", + "src": "2354:7:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -1820,18 +1903,18 @@ "typeString": "address" } ], - "id": 771, + "id": 782, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "2213:10:2", + "referencedDeclaration": 1375, + "src": "2323:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 775, + "id": 786, "isConstant": false, "isLValue": false, "isPure": false, @@ -1839,16 +1922,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2213:39:2", + "src": "2323:39:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 776, + "id": 787, "nodeType": "ExpressionStatement", - "src": "2213:39:2" + "src": "2323:39:2" }, { "expression": { @@ -1856,12 +1939,102 @@ "arguments": [ { "argumentTypes": null, - "id": 778, - "name": "PAUSER_ROLE", + "id": 789, + "name": "ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 714, - "src": "2274:11:2", + "src": "2384:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 790, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "2396:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2396:7:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 788, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1375, + "src": "2373:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2373:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 793, + "nodeType": "ExpressionStatement", + "src": "2373:31:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 795, + "name": "PAUSER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 719, + "src": "2425:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1872,18 +2045,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 779, + "id": 796, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "2287:5:2", + "referencedDeclaration": 1494, + "src": "2438:5:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 780, + "id": 797, "isConstant": false, "isLValue": false, "isPure": false, @@ -1891,7 +2064,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2287:7:2", + "src": "2438:7:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -1910,18 +2083,18 @@ "typeString": "address" } ], - "id": 777, + "id": 794, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "2263:10:2", + "referencedDeclaration": 1375, + "src": "2414:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 781, + "id": 798, "isConstant": false, "isLValue": false, "isPure": false, @@ -1929,33 +2102,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2263:32:2", + "src": "2414:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 782, + "id": 799, "nodeType": "ExpressionStatement", - "src": "2263:32:2" + "src": "2414:32:2" }, { "expression": { "argumentTypes": null, - "id": 787, + "id": 804, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 783, + "id": 800, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "2421:3:2", + "referencedDeclaration": 742, + "src": "2490:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" @@ -1968,82 +2141,77 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307845413139304442444337616446323635323630656334644136653936373546643466354137386262", - "id": 785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2435:42:2", - "subdenomination": null, + "id": 802, + "name": "pot_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 775, + "src": "2504:4:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xEA190DBDC7adF265260ec4dA6e9675Fd4f5A78bb" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 784, + "id": 801, "name": "PotLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 664, - "src": "2427:7:2", + "src": "2496:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_PotLike_$664_$", "typeString": "type(contract PotLike)" } }, - "id": 786, + "id": 803, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2427:51:2", + "src": "2496:13:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "src": "2421:57:2", + "src": "2490:19:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 788, + "id": 805, "nodeType": "ExpressionStatement", - "src": "2421:57:2" + "src": "2490:19:2" }, { "expression": { "argumentTypes": null, - "id": 793, + "id": 810, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 789, + "id": 806, "name": "chief", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "2611:5:2", + "referencedDeclaration": 744, + "src": "2553:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" @@ -2056,82 +2224,77 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307862424646433736653934423334463732443936443035346233316636343234323439633133333764", - "id": 791, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2631:42:2", - "subdenomination": null, + "id": 808, + "name": "chief_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 777, + "src": "2573:6:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xbBFFC76e94B34F72D96D054b31f6424249c1337d" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 790, + "id": 807, "name": "DSChiefLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 672, - "src": "2619:11:2", + "src": "2561:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DSChiefLike_$672_$", "typeString": "type(contract DSChiefLike)" } }, - "id": 792, + "id": 809, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2619:55:2", + "src": "2561:19:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "src": "2611:63:2", + "src": "2553:27:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "id": 794, + "id": 811, "nodeType": "ExpressionStatement", - "src": "2611:63:2" + "src": "2553:27:2" }, { "expression": { "argumentTypes": null, - "id": 799, + "id": 816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 795, + "id": 812, "name": "flipper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "2814:7:2", + "referencedDeclaration": 746, + "src": "2631:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" @@ -2144,70 +2307,65 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307842343031333945613336443335643043394636613265363236303142363136463146666242443162", - "id": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2836:42:2", - "subdenomination": null, + "id": 814, + "name": "flipper_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "2653:8:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xB40139Ea36D35d0C9F6a2e62601B616F1FfbBD1b" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 796, + "id": 813, "name": "FlipperLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 697, - "src": "2824:11:2", + "src": "2641:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FlipperLike_$697_$", "typeString": "type(contract FlipperLike)" } }, - "id": 798, + "id": 815, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2824:55:2", + "src": "2641:21:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" } }, - "src": "2814:65:2", + "src": "2631:31:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" } }, - "id": 800, + "id": 817, "nodeType": "ExpressionStatement", - "src": "2814:65:2" + "src": "2631:31:2" } ] }, "documentation": null, - "id": 802, + "id": 819, "implemented": true, "kind": "constructor", "modifiers": [], @@ -2215,50 +2373,138 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 769, - "nodeType": "ParameterList", - "parameters": [], - "src": "2193:2:2" - }, - "returnParameters": { - "id": 770, + "id": 780, "nodeType": "ParameterList", - "parameters": [], - "src": "2203:0:2" - }, - "scope": 1075, - "src": "2182:703:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 809, - "nodeType": "Block", - "src": "3042:19:2", - "statements": [ + "parameters": [ { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 806, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -19, + "constant": false, + "id": 775, + "mutability": "mutable", + "name": "pot_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2258:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 774, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2258:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 777, + "mutability": "mutable", + "name": "chief_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2272:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 776, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2272:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 779, + "mutability": "mutable", + "name": "flipper_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2288:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2288:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2257:48:2" + }, + "returnParameters": { + "id": 781, + "nodeType": "ParameterList", + "parameters": [], + "src": "2313:0:2" + }, + "scope": 1106, + "src": "2246:422:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 826, + "nodeType": "Block", + "src": "2825:19:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 823, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, -19 ], "referencedDeclaration": -19, - "src": "3048:6:2", + "src": "2831:6:2", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 807, + "id": 824, "isConstant": false, "isLValue": false, "isPure": false, @@ -2266,26 +2512,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3048:8:2", + "src": "2831:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 808, + "id": 825, "nodeType": "ExpressionStatement", - "src": "3048:8:2" + "src": "2831:8:2" } ] }, "documentation": { - "id": 803, + "id": 820, "nodeType": "StructuredDocumentation", - "src": "2889:130:2", + "src": "2672:130:2", "text": "@notice Fallback function\n @dev Added not payable to revert transactions not matching any other function which send value" }, - "id": 810, + "id": 827, "implemented": true, "kind": "fallback", "modifiers": [], @@ -2293,45 +2539,228 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 804, + "id": 821, "nodeType": "ParameterList", "parameters": [], - "src": "3030:2:2" + "src": "2813:2:2" }, "returnParameters": { - "id": 805, + "id": 822, "nodeType": "ParameterList", "parameters": [], - "src": "3042:0:2" + "src": "2825:0:2" }, - "scope": 1075, - "src": "3022:39:2", + "scope": 1106, + "src": "2805:39:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { + "id": 840, + "nodeType": "Block", + "src": "2890:90:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 832, + "name": "ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 714, + "src": "2914:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 833, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2926:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2926:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 831, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1238, + "src": "2906:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2906:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43616c6c6572206973206e6f7420616e2061646d696e", + "id": 836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2939:24:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c42e6f213cb252dbb58053bcbc469c8ef3e91890f0261efae8e5d5a1aecda226", + "typeString": "literal_string \"Caller is not an admin\"" + }, + "value": "Caller is not an admin" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c42e6f213cb252dbb58053bcbc469c8ef3e91890f0261efae8e5d5a1aecda226", + "typeString": "literal_string \"Caller is not an admin\"" + } + ], + "id": 830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2898:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2898:66:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 838, + "nodeType": "ExpressionStatement", + "src": "2898:66:2" + }, + { + "id": 839, + "nodeType": "PlaceholderStatement", + "src": "2972:1:2" + } + ] + }, + "documentation": { + "id": 828, + "nodeType": "StructuredDocumentation", + "src": "2848:18:2", + "text": "@dev Modifiers" + }, + "id": 841, + "name": "onlyAdmin", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { "id": 829, + "nodeType": "ParameterList", + "parameters": [], + "src": "2887:2:2" + }, + "src": "2869:111:2", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 860, "nodeType": "Block", - "src": "3415:46:2", + "src": "3335:46:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 825, + "id": 856, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 823, + "id": 854, "name": "roots", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "3421:5:2", + "referencedDeclaration": 722, + "src": "3341:5:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" @@ -2341,39 +2770,39 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 824, + "id": 855, "name": "rootHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 814, - "src": "3429:10:2", + "referencedDeclaration": 845, + "src": "3349:10:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "src": "3421:18:2", + "src": "3341:18:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 826, + "id": 857, "nodeType": "ExpressionStatement", - "src": "3421:18:2" + "src": "3341:18:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 827, + "id": 858, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3452:4:2", + "src": "3372:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2381,79 +2810,79 @@ }, "value": "true" }, - "functionReturnParameters": 822, - "id": 828, + "functionReturnParameters": 853, + "id": 859, "nodeType": "Return", - "src": "3445:11:2" + "src": "3365:11:2" } ] }, "documentation": { - "id": 811, + "id": 842, "nodeType": "StructuredDocumentation", - "src": "3065:245:2", + "src": "2985:245:2", "text": "@notice Set Merkle Tree Root Hashes array\n @dev Called by owner to update roots for different address batches by templateId\n @param rootHashes Root hashes of the Merkle Trees by templateId\n @return True if successfully updated" }, "functionSelector": "aca57703", - "id": 830, + "id": 861, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 817, + "id": 848, "modifierName": { "argumentTypes": null, - "id": 816, - "name": "onlyOwner", + "id": 847, + "name": "onlyAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "3376:9:2", + "referencedDeclaration": 841, + "src": "3296:9:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3376:9:2" + "src": "3296:9:2" }, { "arguments": null, - "id": 819, + "id": 850, "modifierName": { "argumentTypes": null, - "id": 818, + "id": 849, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "3386:13:2", + "referencedDeclaration": 4198, + "src": "3306:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3386:13:2" + "src": "3306:13:2" } ], "name": "setRootHashes", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 815, + "id": 846, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 814, + "id": 845, "mutability": "mutable", "name": "rootHashes", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 830, - "src": "3336:29:2", + "scope": 861, + "src": "3256:29:2", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -2462,19 +2891,19 @@ }, "typeName": { "baseType": { - "id": 812, + "id": 843, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3336:7:2", + "src": "3256:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 813, + "id": 844, "length": null, "nodeType": "ArrayTypeName", - "src": "3336:9:2", + "src": "3256:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -2484,21 +2913,21 @@ "visibility": "internal" } ], - "src": "3335:31:2" + "src": "3255:31:2" }, "returnParameters": { - "id": 822, + "id": 853, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 821, + "id": 852, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 830, - "src": "3409:4:2", + "scope": 861, + "src": "3329:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2506,10 +2935,10 @@ "typeString": "bool" }, "typeName": { - "id": 820, + "id": 851, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3409:4:2", + "src": "3329:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2519,34 +2948,34 @@ "visibility": "internal" } ], - "src": "3408:6:2" + "src": "3328:6:2" }, - "scope": 1075, - "src": "3313:148:2", + "scope": 1106, + "src": "3233:148:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 870, + "id": 901, "nodeType": "Block", - "src": "3713:129:2", + "src": "3633:129:2", "statements": [ { "assignments": [ - 841 + 872 ], "declarations": [ { "constant": false, - "id": 841, + "id": 872, "mutability": "mutable", "name": "slice", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 870, - "src": "3719:13:2", + "scope": 901, + "src": "3639:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2554,10 +2983,10 @@ "typeString": "uint256" }, "typeName": { - "id": 840, + "id": 871, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3719:7:2", + "src": "3639:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2567,18 +2996,18 @@ "visibility": "internal" } ], - "id": 846, + "id": 877, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 844, + "id": 875, "name": "guy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 833, - "src": "3743:3:2", + "referencedDeclaration": 864, + "src": "3663:3:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2594,18 +3023,18 @@ ], "expression": { "argumentTypes": null, - "id": 842, + "id": 873, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3735:3:2", + "referencedDeclaration": 742, + "src": "3655:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 843, + "id": 874, "isConstant": false, "isLValue": false, "isPure": false, @@ -2613,13 +3042,13 @@ "memberName": "pie", "nodeType": "MemberAccess", "referencedDeclaration": 648, - "src": "3735:7:2", + "src": "3655:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 845, + "id": 876, "isConstant": false, "isLValue": false, "isPure": false, @@ -2627,7 +3056,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3735:12:2", + "src": "3655:12:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2635,22 +3064,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3719:28:2" + "src": "3639:28:2" }, { "assignments": [ - 848 + 879 ], "declarations": [ { "constant": false, - "id": 848, + "id": 879, "mutability": "mutable", "name": "chi", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 870, - "src": "3753:11:2", + "scope": 901, + "src": "3673:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2658,10 +3087,10 @@ "typeString": "uint256" }, "typeName": { - "id": 847, + "id": 878, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3753:7:2", + "src": "3673:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2671,7 +3100,7 @@ "visibility": "internal" } ], - "id": 862, + "id": 893, "initialValue": { "argumentTypes": null, "condition": { @@ -2683,19 +3112,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 853, + "id": 884, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 849, + "id": 880, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -17, - "src": "3768:3:2", + "src": "3688:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2710,18 +3139,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 850, + "id": 881, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3774:3:2", + "referencedDeclaration": 742, + "src": "3694:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 851, + "id": 882, "isConstant": false, "isLValue": false, "isPure": false, @@ -2729,13 +3158,13 @@ "memberName": "rho", "nodeType": "MemberAccess", "referencedDeclaration": 658, - "src": "3774:7:2", + "src": "3694:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 852, + "id": 883, "isConstant": false, "isLValue": false, "isPure": false, @@ -2743,28 +3172,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3774:9:2", + "src": "3694:9:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3768:15:2", + "src": "3688:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 854, + "id": 885, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3767:17:2", + "src": "3687:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2777,18 +3206,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 858, + "id": 889, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3800:3:2", + "referencedDeclaration": 742, + "src": "3720:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 859, + "id": 890, "isConstant": false, "isLValue": false, "isPure": false, @@ -2796,13 +3225,13 @@ "memberName": "chi", "nodeType": "MemberAccess", "referencedDeclaration": 653, - "src": "3800:7:2", + "src": "3720:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 860, + "id": 891, "isConstant": false, "isLValue": false, "isPure": false, @@ -2810,20 +3239,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3800:9:2", + "src": "3720:9:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 861, + "id": 892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "3767:42:2", + "src": "3687:42:2", "trueExpression": { "argumentTypes": null, "arguments": [], @@ -2831,18 +3260,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 855, + "id": 886, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3787:3:2", + "referencedDeclaration": 742, + "src": "3707:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 856, + "id": 887, "isConstant": false, "isLValue": false, "isPure": false, @@ -2850,13 +3279,13 @@ "memberName": "drip", "nodeType": "MemberAccess", "referencedDeclaration": 663, - "src": "3787:8:2", + "src": "3707:8:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 857, + "id": 888, "isConstant": false, "isLValue": false, "isPure": false, @@ -2864,7 +3293,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3787:10:2", + "src": "3707:10:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2877,24 +3306,24 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3753:56:2" + "src": "3673:56:2" }, { "expression": { "argumentTypes": null, - "id": 868, + "id": 899, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 863, + "id": 894, "name": "wad", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 838, - "src": "3815:3:2", + "referencedDeclaration": 869, + "src": "3735:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2907,12 +3336,12 @@ "arguments": [ { "argumentTypes": null, - "id": 865, + "id": 896, "name": "slice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 841, - "src": "3826:5:2", + "referencedDeclaration": 872, + "src": "3746:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2920,12 +3349,12 @@ }, { "argumentTypes": null, - "id": 866, + "id": 897, "name": "chi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 848, - "src": "3833:3:2", + "referencedDeclaration": 879, + "src": "3753:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2943,18 +3372,18 @@ "typeString": "uint256" } ], - "id": 864, + "id": 895, "name": "rmul", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "3821:4:2", + "referencedDeclaration": 773, + "src": "3741:4:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) view returns (uint256)" } }, - "id": 867, + "id": 898, "isConstant": false, "isLValue": false, "isPure": false, @@ -2962,71 +3391,71 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3821:16:2", + "src": "3741:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3815:22:2", + "src": "3735:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 869, + "id": 900, "nodeType": "ExpressionStatement", - "src": "3815:22:2" + "src": "3735:22:2" } ] }, "documentation": { - "id": 831, + "id": 862, "nodeType": "StructuredDocumentation", - "src": "3465:169:2", + "src": "3385:169:2", "text": "@notice Return the accrued interest of guy on Pot\n @dev Based on Chai dai() function\n @param guy Address to check\n @return wad Accrued interest of guy" }, - "id": 871, + "id": 902, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 836, + "id": 867, "modifierName": { "argumentTypes": null, - "id": 835, + "id": 866, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "3677:13:2", + "referencedDeclaration": 4198, + "src": "3597:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3677:13:2" + "src": "3597:13:2" } ], "name": "_dai", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 834, + "id": 865, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 833, + "id": 864, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 871, - "src": "3651:11:2", + "scope": 902, + "src": "3571:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3034,10 +3463,10 @@ "typeString": "address" }, "typeName": { - "id": 832, + "id": 863, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3651:7:2", + "src": "3571:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3048,21 +3477,21 @@ "visibility": "internal" } ], - "src": "3650:13:2" + "src": "3570:13:2" }, "returnParameters": { - "id": 839, + "id": 870, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 838, + "id": 869, "mutability": "mutable", "name": "wad", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 871, - "src": "3700:11:2", + "scope": 902, + "src": "3620:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3070,10 +3499,10 @@ "typeString": "uint256" }, "typeName": { - "id": 837, + "id": 868, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3700:7:2", + "src": "3620:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3083,19 +3512,19 @@ "visibility": "internal" } ], - "src": "3699:13:2" + "src": "3619:13:2" }, - "scope": 1075, - "src": "3637:205:2", + "scope": 1106, + "src": "3557:205:2", "stateMutability": "view", "virtual": false, "visibility": "private" }, { "body": { - "id": 918, + "id": 949, "nodeType": "Block", - "src": "4094:266:2", + "src": "4014:266:2", "statements": [ { "expression": { @@ -3107,7 +3536,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 887, + "id": 918, "isConstant": false, "isLValue": false, "isPure": false, @@ -3119,18 +3548,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 883, + "id": 914, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4113:3:2", + "src": "4033:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 884, + "id": 915, "isConstant": false, "isLValue": false, "isPure": false, @@ -3138,7 +3567,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4113:10:2", + "src": "4033:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3152,18 +3581,18 @@ "typeString": "address payable" } ], - "id": 882, + "id": 913, "name": "_dai", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 871, - "src": "4108:4:2", + "referencedDeclaration": 902, + "src": "4028:4:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 885, + "id": 916, "isConstant": false, "isLValue": false, "isPure": false, @@ -3171,7 +3600,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4108:16:2", + "src": "4028:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3183,14 +3612,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 886, + "id": 917, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4128:7:2", + "src": "4048:7:2", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", @@ -3198,7 +3627,7 @@ }, "value": "1" }, - "src": "4108:27:2", + "src": "4028:27:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3207,14 +3636,14 @@ { "argumentTypes": null, "hexValue": "43616c6c657220686173206e6f7420616363727565642031206f72206d6f72652044616920696e746572657374206f6e20506f74", - "id": 888, + "id": 919, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4137:54:2", + "src": "4057:54:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_94e2bcffd09237077ab7bf5d72c9dbecf83833ba747ce44f2fb8b96ffffa64a1", @@ -3234,7 +3663,7 @@ "typeString": "literal_string \"Caller has not accrued 1 or more Dai interest on Pot\"" } ], - "id": 881, + "id": 912, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3242,13 +3671,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4100:7:2", + "src": "4020:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 889, + "id": 920, "isConstant": false, "isLValue": false, "isPure": false, @@ -3256,21 +3685,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4100:92:2", + "src": "4020:92:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 890, + "id": 921, "nodeType": "ExpressionStatement", - "src": "4100:92:2" + "src": "4020:92:2" }, { "condition": { "argumentTypes": null, - "id": 898, + "id": 929, "isConstant": false, "isLValue": false, "isPure": false, @@ -3278,7 +3707,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4202:43:2", + "src": "4122:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -3286,18 +3715,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 895, + "id": 926, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4234:3:2", + "src": "4154:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 896, + "id": 927, "isConstant": false, "isLValue": false, "isPure": false, @@ -3305,7 +3734,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4234:10:2", + "src": "4154:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3323,26 +3752,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 891, + "id": 922, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4203:9:2", + "referencedDeclaration": 726, + "src": "4123:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 893, + "id": 924, "indexExpression": { "argumentTypes": null, - "id": 892, + "id": 923, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "4213:10:2", + "referencedDeclaration": 905, + "src": "4133:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3353,27 +3782,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4203:21:2", + "src": "4123:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 894, + "id": 925, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "4203:30:2", + "referencedDeclaration": 4016, + "src": "4123:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 897, + "id": 928, "isConstant": false, "isLValue": false, "isPure": false, @@ -3381,7 +3810,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4203:42:2", + "src": "4123:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3394,13 +3823,13 @@ } }, "falseBody": null, - "id": 910, + "id": 941, "nodeType": "IfStatement", - "src": "4198:108:2", + "src": "4118:108:2", "trueBody": { - "id": 909, + "id": 940, "nodeType": "Block", - "src": "4247:59:2", + "src": "4167:59:2", "statements": [ { "expression": { @@ -3413,18 +3842,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 904, + "id": 935, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4287:3:2", + "src": "4207:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 905, + "id": 936, "isConstant": false, "isLValue": false, "isPure": false, @@ -3432,7 +3861,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4287:10:2", + "src": "4207:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3450,26 +3879,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 900, + "id": 931, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4261:9:2", + "referencedDeclaration": 726, + "src": "4181:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 902, + "id": 933, "indexExpression": { "argumentTypes": null, - "id": 901, + "id": 932, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "4271:10:2", + "referencedDeclaration": 905, + "src": "4191:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3480,27 +3909,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4261:21:2", + "src": "4181:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 903, + "id": 934, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "4261:25:2", + "referencedDeclaration": 3970, + "src": "4181:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 906, + "id": 937, "isConstant": false, "isLValue": false, "isPure": false, @@ -3508,7 +3937,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4261:37:2", + "src": "4181:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3523,7 +3952,7 @@ "typeString": "bool" } ], - "id": 899, + "id": 930, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3531,13 +3960,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4253:7:2", + "src": "4173:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 907, + "id": 938, "isConstant": false, "isLValue": false, "isPure": false, @@ -3545,16 +3974,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4253:46:2", + "src": "4173:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 908, + "id": 939, "nodeType": "ExpressionStatement", - "src": "4253:46:2" + "src": "4173:46:2" } ] } @@ -3567,18 +3996,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 912, + "id": 943, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4327:3:2", + "src": "4247:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 913, + "id": 944, "isConstant": false, "isLValue": false, "isPure": false, @@ -3586,7 +4015,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4327:10:2", + "src": "4247:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3600,18 +4029,18 @@ "typeString": "address payable" } ], - "id": 911, + "id": 942, "name": "PotChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 726, - "src": "4316:10:2", + "referencedDeclaration": 731, + "src": "4236:10:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 914, + "id": 945, "isConstant": false, "isLValue": false, "isPure": false, @@ -3619,29 +4048,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4316:22:2", + "src": "4236:22:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 915, + "id": 946, "nodeType": "EmitStatement", - "src": "4311:27:2" + "src": "4231:27:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 916, + "id": 947, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4351:4:2", + "src": "4271:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3649,60 +4078,60 @@ }, "value": "true" }, - "functionReturnParameters": 880, - "id": 917, + "functionReturnParameters": 911, + "id": 948, "nodeType": "Return", - "src": "4344:11:2" + "src": "4264:11:2" } ] }, "documentation": { - "id": 872, + "id": 903, "nodeType": "StructuredDocumentation", - "src": "3846:165:2", + "src": "3766:165:2", "text": "@notice Pot Challenge\n @dev Keeps track of the address of the caller if successful\n @return True if the caller successfully checked for activity on Pot" }, "functionSelector": "baf2868b", - "id": 919, + "id": 950, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 877, + "id": 908, "modifierName": { "argumentTypes": null, - "id": 876, + "id": 907, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "4065:13:2", + "referencedDeclaration": 4198, + "src": "3985:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4065:13:2" + "src": "3985:13:2" } ], "name": "potChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 875, + "id": 906, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 874, + "id": 905, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 919, - "src": "4036:18:2", + "scope": 950, + "src": "3956:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3710,10 +4139,10 @@ "typeString": "uint256" }, "typeName": { - "id": 873, + "id": 904, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4036:7:2", + "src": "3956:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3723,21 +4152,21 @@ "visibility": "internal" } ], - "src": "4035:20:2" + "src": "3955:20:2" }, "returnParameters": { - "id": 880, + "id": 911, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 879, + "id": 910, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 919, - "src": "4088:4:2", + "scope": 950, + "src": "4008:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3745,10 +4174,10 @@ "typeString": "bool" }, "typeName": { - "id": 878, + "id": 909, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4088:4:2", + "src": "4008:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3758,19 +4187,19 @@ "visibility": "internal" } ], - "src": "4087:6:2" + "src": "4007:6:2" }, - "scope": 1075, - "src": "4014:346:2", + "scope": 1106, + "src": "3934:346:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 967, + "id": 998, "nodeType": "Block", - "src": "4622:263:2", + "src": "4542:264:2", "statements": [ { "expression": { @@ -3782,7 +4211,7 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 936, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, @@ -3794,18 +4223,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 932, + "id": 963, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4648:3:2", + "src": "4568:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 933, + "id": 964, "isConstant": false, "isLValue": false, "isPure": false, @@ -3813,7 +4242,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4648:10:2", + "src": "4568:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3829,18 +4258,18 @@ ], "expression": { "argumentTypes": null, - "id": 930, + "id": 961, "name": "chief", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "4636:5:2", + "referencedDeclaration": 744, + "src": "4556:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "id": 931, + "id": 962, "isConstant": false, "isLValue": false, "isPure": false, @@ -3848,13 +4277,13 @@ "memberName": "votes", "nodeType": "MemberAccess", "referencedDeclaration": 671, - "src": "4636:11:2", + "src": "4556:11:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$", "typeString": "function (address) view external returns (bytes32)" } }, - "id": 934, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, @@ -3862,7 +4291,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4636:23:2", + "src": "4556:23:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3874,14 +4303,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783030", - "id": 935, + "id": 966, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4663:4:2", + "src": "4583:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3889,7 +4318,7 @@ }, "value": "0x00" }, - "src": "4636:31:2", + "src": "4556:31:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3897,21 +4326,21 @@ }, { "argumentTypes": null, - "hexValue": "43616c6c6572206973206e6f7420766f74696e6720696e206120476f7665726e616e636520506f6c6c", - "id": 937, + "hexValue": "43616c6c6572206973206e6f7420766f74696e6720696e20616e20457865637574697665205370656c6c", + "id": 968, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4669:43:2", + "src": "4589:44:2", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_67b208a9b43a5545a1a8888c99a64b4cd7f58aa52580dee6f4ec112b3e80c46b", - "typeString": "literal_string \"Caller is not voting in a Governance Poll\"" + "typeIdentifier": "t_stringliteral_65880bfcd366c16deddf50d8f8606d011e26303e9f1a09e543bd3e08c12c2544", + "typeString": "literal_string \"Caller is not voting in an Executive Spell\"" }, - "value": "Caller is not voting in a Governance Poll" + "value": "Caller is not voting in an Executive Spell" } ], "expression": { @@ -3921,11 +4350,11 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_67b208a9b43a5545a1a8888c99a64b4cd7f58aa52580dee6f4ec112b3e80c46b", - "typeString": "literal_string \"Caller is not voting in a Governance Poll\"" + "typeIdentifier": "t_stringliteral_65880bfcd366c16deddf50d8f8606d011e26303e9f1a09e543bd3e08c12c2544", + "typeString": "literal_string \"Caller is not voting in an Executive Spell\"" } ], - "id": 929, + "id": 960, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3933,13 +4362,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4628:7:2", + "src": "4548:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 938, + "id": 969, "isConstant": false, "isLValue": false, "isPure": false, @@ -3947,21 +4376,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4628:85:2", + "src": "4548:86:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 939, + "id": 970, "nodeType": "ExpressionStatement", - "src": "4628:85:2" + "src": "4548:86:2" }, { "condition": { "argumentTypes": null, - "id": 947, + "id": 978, "isConstant": false, "isLValue": false, "isPure": false, @@ -3969,7 +4398,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4723:43:2", + "src": "4644:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -3977,18 +4406,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 944, + "id": 975, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4755:3:2", + "src": "4676:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 945, + "id": 976, "isConstant": false, "isLValue": false, "isPure": false, @@ -3996,7 +4425,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4755:10:2", + "src": "4676:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4014,26 +4443,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 940, + "id": 971, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4724:9:2", + "referencedDeclaration": 726, + "src": "4645:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 942, + "id": 973, "indexExpression": { "argumentTypes": null, - "id": 941, + "id": 972, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "4734:10:2", + "referencedDeclaration": 953, + "src": "4655:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4044,27 +4473,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4724:21:2", + "src": "4645:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 943, + "id": 974, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "4724:30:2", + "referencedDeclaration": 4016, + "src": "4645:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 946, + "id": 977, "isConstant": false, "isLValue": false, "isPure": false, @@ -4072,7 +4501,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4724:42:2", + "src": "4645:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4085,13 +4514,13 @@ } }, "falseBody": null, - "id": 959, + "id": 990, "nodeType": "IfStatement", - "src": "4719:108:2", + "src": "4640:108:2", "trueBody": { - "id": 958, + "id": 989, "nodeType": "Block", - "src": "4768:59:2", + "src": "4689:59:2", "statements": [ { "expression": { @@ -4104,18 +4533,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 953, + "id": 984, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4808:3:2", + "src": "4729:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 954, + "id": 985, "isConstant": false, "isLValue": false, "isPure": false, @@ -4123,7 +4552,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4808:10:2", + "src": "4729:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4141,26 +4570,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 949, + "id": 980, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4782:9:2", + "referencedDeclaration": 726, + "src": "4703:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 951, + "id": 982, "indexExpression": { "argumentTypes": null, - "id": 950, + "id": 981, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "4792:10:2", + "referencedDeclaration": 953, + "src": "4713:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4171,27 +4600,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4782:21:2", + "src": "4703:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 952, + "id": 983, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "4782:25:2", + "referencedDeclaration": 3970, + "src": "4703:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 955, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, @@ -4199,7 +4628,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4782:37:2", + "src": "4703:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4214,7 +4643,7 @@ "typeString": "bool" } ], - "id": 948, + "id": 979, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4222,13 +4651,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4774:7:2", + "src": "4695:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 956, + "id": 987, "isConstant": false, "isLValue": false, "isPure": false, @@ -4236,16 +4665,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4774:46:2", + "src": "4695:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 957, + "id": 988, "nodeType": "ExpressionStatement", - "src": "4774:46:2" + "src": "4695:46:2" } ] } @@ -4258,18 +4687,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 961, + "id": 992, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4852:3:2", + "src": "4773:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 962, + "id": 993, "isConstant": false, "isLValue": false, "isPure": false, @@ -4277,7 +4706,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4852:10:2", + "src": "4773:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4291,18 +4720,18 @@ "typeString": "address payable" } ], - "id": 960, + "id": 991, "name": "DSChiefChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "4837:14:2", + "referencedDeclaration": 735, + "src": "4758:14:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 963, + "id": 994, "isConstant": false, "isLValue": false, "isPure": false, @@ -4310,29 +4739,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4837:26:2", + "src": "4758:26:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 964, + "id": 995, "nodeType": "EmitStatement", - "src": "4832:31:2" + "src": "4753:31:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 965, + "id": 996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4876:4:2", + "src": "4797:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4340,60 +4769,60 @@ }, "value": "true" }, - "functionReturnParameters": 928, - "id": 966, + "functionReturnParameters": 959, + "id": 997, "nodeType": "Return", - "src": "4869:11:2" + "src": "4790:11:2" } ] }, "documentation": { - "id": 920, + "id": 951, "nodeType": "StructuredDocumentation", - "src": "4364:173:2", + "src": "4284:173:2", "text": "@notice DSChief Challenge\n @dev Keeps track of the address of the caller if successful\n @return True if the caller successfully checked for activity on DSChief" }, "functionSelector": "f36618a6", - "id": 968, + "id": 999, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 925, + "id": 956, "modifierName": { "argumentTypes": null, - "id": 924, + "id": 955, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "4593:13:2", + "referencedDeclaration": 4198, + "src": "4513:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4593:13:2" + "src": "4513:13:2" } ], "name": "chiefChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 923, + "id": 954, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 922, + "id": 953, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 968, - "src": "4564:18:2", + "scope": 999, + "src": "4484:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4401,10 +4830,10 @@ "typeString": "uint256" }, "typeName": { - "id": 921, + "id": 952, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4564:7:2", + "src": "4484:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4414,21 +4843,21 @@ "visibility": "internal" } ], - "src": "4563:20:2" + "src": "4483:20:2" }, "returnParameters": { - "id": 928, + "id": 959, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 927, + "id": 958, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 968, - "src": "4616:4:2", + "scope": 999, + "src": "4536:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4436,10 +4865,10 @@ "typeString": "bool" }, "typeName": { - "id": 926, + "id": 957, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4616:4:2", + "src": "4536:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4449,19 +4878,19 @@ "visibility": "internal" } ], - "src": "4615:6:2" + "src": "4535:6:2" }, - "scope": 1075, - "src": "4540:345:2", + "scope": 1106, + "src": "4460:346:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1019, + "id": 1050, "nodeType": "Block", - "src": "5192:299:2", + "src": "5113:299:2", "statements": [ { "expression": { @@ -4473,7 +4902,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 988, + "id": 1019, "isConstant": false, "isLValue": false, "isPure": false, @@ -4485,12 +4914,12 @@ "arguments": [ { "argumentTypes": null, - "id": 983, + "id": 1014, "name": "bidId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "5219:5:2", + "referencedDeclaration": 1004, + "src": "5140:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4506,18 +4935,18 @@ ], "expression": { "argumentTypes": null, - "id": 981, + "id": 1012, "name": "flipper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "5206:7:2", + "referencedDeclaration": 746, + "src": "5127:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" } }, - "id": 982, + "id": 1013, "isConstant": false, "isLValue": false, "isPure": false, @@ -4525,13 +4954,13 @@ "memberName": "bids", "nodeType": "MemberAccess", "referencedDeclaration": 696, - "src": "5206:12:2", + "src": "5127:12:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Bid_$689_memory_ptr_$", "typeString": "function (uint256) view external returns (struct FlipperLike.Bid memory)" } }, - "id": 984, + "id": 1015, "isConstant": false, "isLValue": false, "isPure": false, @@ -4539,14 +4968,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5206:19:2", + "src": "5127:19:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Bid_$689_memory_ptr", "typeString": "struct FlipperLike.Bid memory" } }, - "id": 985, + "id": 1016, "isConstant": false, "isLValue": true, "isPure": false, @@ -4554,7 +4983,7 @@ "memberName": "guy", "nodeType": "MemberAccess", "referencedDeclaration": 678, - "src": "5206:23:2", + "src": "5127:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4566,18 +4995,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 986, + "id": 1017, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5233:3:2", + "src": "5154:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 987, + "id": 1018, "isConstant": false, "isLValue": false, "isPure": false, @@ -4585,13 +5014,13 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5233:10:2", + "src": "5154:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "5206:37:2", + "src": "5127:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4600,14 +5029,14 @@ { "argumentTypes": null, "hexValue": "43616c6c6572206973206e6f742074686520686967682062696464657220696e207468652063757272656e742042696420696e20436f6c6c61746572616c2041756374696f6e73", - "id": 989, + "id": 1020, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5245:73:2", + "src": "5166:73:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e88b03e76bc82122d18e72f0c400e240eb0423ded12b22b77672909d807e7840", @@ -4627,7 +5056,7 @@ "typeString": "literal_string \"Caller is not the high bidder in the current Bid in Collateral Auctions\"" } ], - "id": 980, + "id": 1011, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4635,13 +5064,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5198:7:2", + "src": "5119:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 990, + "id": 1021, "isConstant": false, "isLValue": false, "isPure": false, @@ -4649,21 +5078,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5198:121:2", + "src": "5119:121:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 991, + "id": 1022, "nodeType": "ExpressionStatement", - "src": "5198:121:2" + "src": "5119:121:2" }, { "condition": { "argumentTypes": null, - "id": 999, + "id": 1030, "isConstant": false, "isLValue": false, "isPure": false, @@ -4671,7 +5100,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5329:43:2", + "src": "5250:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -4679,18 +5108,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 996, + "id": 1027, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5361:3:2", + "src": "5282:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 997, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, @@ -4698,7 +5127,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5361:10:2", + "src": "5282:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4716,26 +5145,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 992, + "id": 1023, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5330:9:2", + "referencedDeclaration": 726, + "src": "5251:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 994, + "id": 1025, "indexExpression": { "argumentTypes": null, - "id": 993, + "id": 1024, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5340:10:2", + "referencedDeclaration": 1002, + "src": "5261:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4746,27 +5175,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5330:21:2", + "src": "5251:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 995, + "id": 1026, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "5330:30:2", + "referencedDeclaration": 4016, + "src": "5251:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 998, + "id": 1029, "isConstant": false, "isLValue": false, "isPure": false, @@ -4774,7 +5203,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5330:42:2", + "src": "5251:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4787,13 +5216,13 @@ } }, "falseBody": null, - "id": 1011, + "id": 1042, "nodeType": "IfStatement", - "src": "5325:108:2", + "src": "5246:108:2", "trueBody": { - "id": 1010, + "id": 1041, "nodeType": "Block", - "src": "5374:59:2", + "src": "5295:59:2", "statements": [ { "expression": { @@ -4806,18 +5235,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1005, + "id": 1036, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5414:3:2", + "src": "5335:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1006, + "id": 1037, "isConstant": false, "isLValue": false, "isPure": false, @@ -4825,7 +5254,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5414:10:2", + "src": "5335:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4843,26 +5272,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1001, + "id": 1032, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5388:9:2", + "referencedDeclaration": 726, + "src": "5309:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 1003, + "id": 1034, "indexExpression": { "argumentTypes": null, - "id": 1002, + "id": 1033, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5398:10:2", + "referencedDeclaration": 1002, + "src": "5319:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4873,27 +5302,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5388:21:2", + "src": "5309:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1004, + "id": 1035, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "5388:25:2", + "referencedDeclaration": 3970, + "src": "5309:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 1007, + "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, @@ -4901,7 +5330,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5388:37:2", + "src": "5309:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4916,7 +5345,7 @@ "typeString": "bool" } ], - "id": 1000, + "id": 1031, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4924,13 +5353,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5380:7:2", + "src": "5301:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1008, + "id": 1039, "isConstant": false, "isLValue": false, "isPure": false, @@ -4938,16 +5367,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5380:46:2", + "src": "5301:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1009, + "id": 1040, "nodeType": "ExpressionStatement", - "src": "5380:46:2" + "src": "5301:46:2" } ] } @@ -4960,18 +5389,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1013, + "id": 1044, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5458:3:2", + "src": "5379:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1014, + "id": 1045, "isConstant": false, "isLValue": false, "isPure": false, @@ -4979,7 +5408,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5458:10:2", + "src": "5379:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4993,18 +5422,18 @@ "typeString": "address payable" } ], - "id": 1012, + "id": 1043, "name": "FlipperChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 734, - "src": "5443:14:2", + "referencedDeclaration": 739, + "src": "5364:14:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1015, + "id": 1046, "isConstant": false, "isLValue": false, "isPure": false, @@ -5012,29 +5441,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5443:26:2", + "src": "5364:26:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1016, + "id": 1047, "nodeType": "EmitStatement", - "src": "5438:31:2" + "src": "5359:31:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 1017, + "id": 1048, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5482:4:2", + "src": "5403:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5042,60 +5471,60 @@ }, "value": "true" }, - "functionReturnParameters": 979, - "id": 1018, + "functionReturnParameters": 1010, + "id": 1049, "nodeType": "Return", - "src": "5475:11:2" + "src": "5396:11:2" } ] }, "documentation": { - "id": 969, + "id": 1000, "nodeType": "StructuredDocumentation", - "src": "4889:201:2", + "src": "4810:201:2", "text": "@notice Flipper Challenge\n @dev Keeps track of the address of the caller if successful\n @dev guy, high bidder\n @return True if the caller successfully checked for activity on Flipper" }, "functionSelector": "9c1c94fd", - "id": 1020, + "id": 1051, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 976, + "id": 1007, "modifierName": { "argumentTypes": null, - "id": 975, + "id": 1006, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "5163:13:2", + "referencedDeclaration": 4198, + "src": "5084:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5163:13:2" + "src": "5084:13:2" } ], "name": "flipperChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 974, + "id": 1005, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 971, + "id": 1002, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5119:18:2", + "scope": 1051, + "src": "5040:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5103,10 +5532,10 @@ "typeString": "uint256" }, "typeName": { - "id": 970, + "id": 1001, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5119:7:2", + "src": "5040:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5117,13 +5546,13 @@ }, { "constant": false, - "id": 973, + "id": 1004, "mutability": "mutable", "name": "bidId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5139:13:2", + "scope": 1051, + "src": "5060:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5131,10 +5560,10 @@ "typeString": "uint256" }, "typeName": { - "id": 972, + "id": 1003, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5139:7:2", + "src": "5060:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5144,21 +5573,21 @@ "visibility": "internal" } ], - "src": "5118:35:2" + "src": "5039:35:2" }, "returnParameters": { - "id": 979, + "id": 1010, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 978, + "id": 1009, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5186:4:2", + "scope": 1051, + "src": "5107:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5166,10 +5595,10 @@ "typeString": "bool" }, "typeName": { - "id": 977, + "id": 1008, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5186:4:2", + "src": "5107:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5179,19 +5608,19 @@ "visibility": "internal" } ], - "src": "5185:6:2" + "src": "5106:6:2" }, - "scope": 1075, - "src": "5093:398:2", + "scope": 1106, + "src": "5014:398:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1039, + "id": 1070, "nodeType": "Block", - "src": "5750:53:2", + "src": "5671:53:2", "statements": [ { "expression": { @@ -5199,12 +5628,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1036, + "id": 1067, "name": "guy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "5794:3:2", + "referencedDeclaration": 1056, + "src": "5715:3:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5222,26 +5651,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1032, + "id": 1063, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5763:9:2", + "referencedDeclaration": 726, + "src": "5684:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 1034, + "id": 1065, "indexExpression": { "argumentTypes": null, - "id": 1033, + "id": 1064, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "5773:10:2", + "referencedDeclaration": 1054, + "src": "5694:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5252,27 +5681,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5763:21:2", + "src": "5684:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1035, + "id": 1066, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "5763:30:2", + "referencedDeclaration": 4016, + "src": "5684:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 1037, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, @@ -5280,67 +5709,67 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5763:35:2", + "src": "5684:35:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1031, - "id": 1038, + "functionReturnParameters": 1062, + "id": 1069, "nodeType": "Return", - "src": "5756:42:2" + "src": "5677:42:2" } ] }, "documentation": { - "id": 1021, + "id": 1052, "nodeType": "StructuredDocumentation", - "src": "5495:160:2", + "src": "5416:160:2", "text": "@notice Check if guy is a redeemer\n @dev Verify if the address of guy exists\n @param guy Address to verify\n @return True if guy is a redeemer" }, "functionSelector": "ebfa62b9", - "id": 1040, + "id": 1071, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1028, + "id": 1059, "modifierName": { "argumentTypes": null, - "id": 1027, + "id": 1058, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "5721:13:2", + "referencedDeclaration": 4198, + "src": "5642:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5721:13:2" + "src": "5642:13:2" } ], "name": "verify", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1026, + "id": 1057, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1023, + "id": 1054, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5674:18:2", + "scope": 1071, + "src": "5595:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5348,10 +5777,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1022, + "id": 1053, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5674:7:2", + "src": "5595:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5362,13 +5791,13 @@ }, { "constant": false, - "id": 1025, + "id": 1056, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5694:11:2", + "scope": 1071, + "src": "5615:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5376,10 +5805,10 @@ "typeString": "address" }, "typeName": { - "id": 1024, + "id": 1055, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5694:7:2", + "src": "5615:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5390,21 +5819,21 @@ "visibility": "internal" } ], - "src": "5673:33:2" + "src": "5594:33:2" }, "returnParameters": { - "id": 1031, + "id": 1062, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1030, + "id": 1061, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5744:4:2", + "scope": 1071, + "src": "5665:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5412,10 +5841,10 @@ "typeString": "bool" }, "typeName": { - "id": 1029, + "id": 1060, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5744:4:2", + "src": "5665:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5425,19 +5854,19 @@ "visibility": "internal" } ], - "src": "5743:6:2" + "src": "5664:6:2" }, - "scope": 1075, - "src": "5658:145:2", + "scope": 1106, + "src": "5579:145:2", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 1056, + "id": 1087, "nodeType": "Block", - "src": "5921:113:2", + "src": "5842:113:2", "statements": [ { "expression": { @@ -5448,12 +5877,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1046, + "id": 1077, "name": "PAUSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, - "src": "5943:11:2", + "referencedDeclaration": 719, + "src": "5864:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5463,18 +5892,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1047, + "id": 1078, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5956:3:2", + "src": "5877:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1048, + "id": 1079, "isConstant": false, "isLValue": false, "isPure": false, @@ -5482,7 +5911,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5956:10:2", + "src": "5877:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5500,18 +5929,18 @@ "typeString": "address payable" } ], - "id": 1045, + "id": 1076, "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, - "src": "5935:7:2", + "referencedDeclaration": 1238, + "src": "5856:7:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) view returns (bool)" } }, - "id": 1049, + "id": 1080, "isConstant": false, "isLValue": false, "isPure": false, @@ -5519,7 +5948,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5935:32:2", + "src": "5856:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5529,14 +5958,14 @@ { "argumentTypes": null, "hexValue": "4d616b65724261646765733a206d75737420686176652070617573657220726f6c6520746f207061757365", - "id": 1050, + "id": 1081, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5969:45:2", + "src": "5890:45:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d33b68c439b8482d10dd00f9785755fa4ae9979ec8a8ee9bf8b872747d1b8f67", @@ -5556,7 +5985,7 @@ "typeString": "literal_string \"MakerBadges: must have pauser role to pause\"" } ], - "id": 1044, + "id": 1075, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5564,13 +5993,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5927:7:2", + "src": "5848:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1051, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, @@ -5578,16 +6007,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5927:88:2", + "src": "5848:88:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1052, + "id": 1083, "nodeType": "ExpressionStatement", - "src": "5927:88:2" + "src": "5848:88:2" }, { "expression": { @@ -5595,18 +6024,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1053, + "id": 1084, "name": "_pause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4193, - "src": "6021:6:2", + "referencedDeclaration": 4224, + "src": "5942:6:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1054, + "id": 1085, "isConstant": false, "isLValue": false, "isPure": false, @@ -5614,27 +6043,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6021:8:2", + "src": "5942:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1055, + "id": 1086, "nodeType": "ExpressionStatement", - "src": "6021:8:2" + "src": "5942:8:2" } ] }, "documentation": { - "id": 1041, + "id": 1072, "nodeType": "StructuredDocumentation", - "src": "5807:85:2", + "src": "5728:85:2", "text": "@notice Pause all the functions\n @dev the caller must have the 'PAUSER_ROLE'" }, "functionSelector": "8456cb59", - "id": 1057, + "id": 1088, "implemented": true, "kind": "function", "modifiers": [], @@ -5642,28 +6071,28 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1042, + "id": 1073, "nodeType": "ParameterList", "parameters": [], - "src": "5909:2:2" + "src": "5830:2:2" }, "returnParameters": { - "id": 1043, + "id": 1074, "nodeType": "ParameterList", "parameters": [], - "src": "5921:0:2" + "src": "5842:0:2" }, - "scope": 1075, - "src": "5895:139:2", + "scope": 1106, + "src": "5816:139:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1073, + "id": 1104, "nodeType": "Block", - "src": "6156:127:2", + "src": "6077:127:2", "statements": [ { "expression": { @@ -5674,12 +6103,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1063, + "id": 1094, "name": "PAUSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, - "src": "6182:11:2", + "referencedDeclaration": 719, + "src": "6103:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5689,18 +6118,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1064, + "id": 1095, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "6195:3:2", + "src": "6116:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1065, + "id": 1096, "isConstant": false, "isLValue": false, "isPure": false, @@ -5708,7 +6137,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6195:10:2", + "src": "6116:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5726,18 +6155,18 @@ "typeString": "address payable" } ], - "id": 1062, + "id": 1093, "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, - "src": "6174:7:2", + "referencedDeclaration": 1238, + "src": "6095:7:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) view returns (bool)" } }, - "id": 1066, + "id": 1097, "isConstant": false, "isLValue": false, "isPure": false, @@ -5745,7 +6174,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6174:32:2", + "src": "6095:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5755,14 +6184,14 @@ { "argumentTypes": null, "hexValue": "4d616b65724261646765733a206d75737420686176652070617573657220726f6c6520746f20756e7061757365", - "id": 1067, + "id": 1098, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6208:47:2", + "src": "6129:47:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e81d67bdac033cbd58eea8cc6d19c5b2672fe1faa73f3d7c71703b8e96106b7b", @@ -5782,7 +6211,7 @@ "typeString": "literal_string \"MakerBadges: must have pauser role to unpause\"" } ], - "id": 1061, + "id": 1092, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5790,13 +6219,13 @@ -18 ], "referencedDeclaration": -18, - "src": "6166:7:2", + "src": "6087:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1068, + "id": 1099, "isConstant": false, "isLValue": false, "isPure": false, @@ -5804,16 +6233,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6166:90:2", + "src": "6087:90:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1069, + "id": 1100, "nodeType": "ExpressionStatement", - "src": "6166:90:2" + "src": "6087:90:2" }, { "expression": { @@ -5821,18 +6250,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1070, + "id": 1101, "name": "_unpause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4209, - "src": "6266:8:2", + "referencedDeclaration": 4240, + "src": "6187:8:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1071, + "id": 1102, "isConstant": false, "isLValue": false, "isPure": false, @@ -5840,27 +6269,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6266:10:2", + "src": "6187:10:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1072, + "id": 1103, "nodeType": "ExpressionStatement", - "src": "6266:10:2" + "src": "6187:10:2" } ] }, "documentation": { - "id": 1058, + "id": 1089, "nodeType": "StructuredDocumentation", - "src": "6038:87:2", + "src": "5959:87:2", "text": "@notice Unpause all the functions\n @dev the caller must have the 'PAUSER_ROLE'" }, "functionSelector": "3f4ba83a", - "id": 1074, + "id": 1105, "implemented": true, "kind": "function", "modifiers": [], @@ -5868,29 +6297,29 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1059, + "id": 1090, "nodeType": "ParameterList", "parameters": [], - "src": "6144:2:2" + "src": "6065:2:2" }, "returnParameters": { - "id": 1060, + "id": 1091, "nodeType": "ParameterList", "parameters": [], - "src": "6156:0:2" + "src": "6077:0:2" }, - "scope": 1075, - "src": "6128:155:2", + "scope": 1106, + "src": "6049:155:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 1076, - "src": "1381:4905:2" + "scope": 1107, + "src": "1381:4826:2" } ], - "src": "37:6250:2" + "src": "37:6171:2" }, "legacyAST": { "absolutePath": "/home/sencha/maker-badges/contracts/MakerBadges.sol", @@ -5902,13 +6331,13 @@ 697 ], "MakerBadges": [ - 1075 + 1106 ], "PotLike": [ 664 ] }, - "id": 1076, + "id": 1107, "license": "GPL-3.0", "nodeType": "SourceUnit", "nodes": [ @@ -5917,7 +6346,7 @@ "literals": [ "solidity", "0.6", - ".10" + ".11" ], "nodeType": "PragmaDirective", "src": "37:23:2" @@ -5936,8 +6365,8 @@ "file": "@openzeppelin/contracts/access/Ownable.sol", "id": 637, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1528, + "scope": 1107, + "sourceUnit": 1559, "src": "532:52:2", "symbolAliases": [], "unitAlias": "" @@ -5947,8 +6376,8 @@ "file": "@openzeppelin/contracts/access/AccessControl.sol", "id": 638, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1419, + "scope": 1107, + "sourceUnit": 1450, "src": "585:58:2", "symbolAliases": [], "unitAlias": "" @@ -5958,8 +6387,8 @@ "file": "@openzeppelin/contracts/utils/Pausable.sol", "id": 639, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 4211, + "scope": 1107, + "sourceUnit": 4242, "src": "644:52:2", "symbolAliases": [], "unitAlias": "" @@ -5969,8 +6398,8 @@ "file": "@openzeppelin/contracts/math/SafeMath.sol", "id": 640, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1864, + "scope": 1107, + "sourceUnit": 1895, "src": "697:51:2", "symbolAliases": [], "unitAlias": "" @@ -5980,8 +6409,8 @@ "file": "@openzeppelin/contracts/utils/EnumerableSet.sol", "id": 641, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 4121, + "scope": 1107, + "sourceUnit": 4152, "src": "749:57:2", "symbolAliases": [], "unitAlias": "" @@ -6263,7 +6692,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "808:243:2" }, { @@ -6369,7 +6798,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "1053:84:2" }, { @@ -6714,7 +7143,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "1139:240:2" }, { @@ -6727,10 +7156,10 @@ "id": 698, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1527, + "referencedDeclaration": 1558, "src": "1405:7:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$1527", + "typeIdentifier": "t_contract$_Ownable_$1558", "typeString": "contract Ownable" } }, @@ -6745,10 +7174,10 @@ "id": 700, "name": "AccessControl", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1418, + "referencedDeclaration": 1449, "src": "1414:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_AccessControl_$1418", + "typeIdentifier": "t_contract$_AccessControl_$1449", "typeString": "contract AccessControl" } }, @@ -6763,10 +7192,10 @@ "id": 702, "name": "Pausable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4210, + "referencedDeclaration": 4241, "src": "1429:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pausable_$4210", + "typeIdentifier": "t_contract$_Pausable_$4241", "typeString": "contract Pausable" } }, @@ -6776,21 +7205,21 @@ } ], "contractDependencies": [ - 1135, - 1418, - 1527, - 4210 + 1166, + 1449, + 1558, + 4241 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1075, + "id": 1106, "linearizedBaseContracts": [ - 1075, - 4210, - 1418, - 1527, - 1135 + 1106, + 4241, + 1449, + 1558, + 1166 ], "name": "MakerBadges", "nodeType": "ContractDefinition", @@ -6802,10 +7231,10 @@ "id": 704, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1863, + "referencedDeclaration": 1894, "src": "1470:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1863", + "typeIdentifier": "t_contract$_SafeMath_$1894", "typeString": "library SafeMath" } }, @@ -6829,38 +7258,121 @@ "id": 707, "name": "EnumerableSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4120, + "referencedDeclaration": 4151, "src": "1500:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_EnumerableSet_$4120", + "typeIdentifier": "t_contract$_EnumerableSet_$4151", "typeString": "library EnumerableSet" } }, - "nodeType": "UsingForDirective", - "src": "1494:49:2", - "typeName": { - "contractScope": null, - "id": 708, - "name": "EnumerableSet.AddressSet", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, - "src": "1518:24:2", + "nodeType": "UsingForDirective", + "src": "1494:49:2", + "typeName": { + "contractScope": null, + "id": 708, + "name": "EnumerableSet.AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3947, + "src": "1518:24:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + } + }, + { + "constant": true, + "functionSelector": "75b238fc", + "id": 714, + "mutability": "constant", + "name": "ADMIN_ROLE", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1106, + "src": "1547:60:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 710, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1547:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "41444d494e5f524f4c45", + "id": 712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1594:12:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", + "typeString": "literal_string \"ADMIN_ROLE\"" + }, + "value": "ADMIN_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", + "typeString": "literal_string \"ADMIN_ROLE\"" + } + ], + "id": 711, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1584:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1584:23:2", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", - "typeString": "struct EnumerableSet.AddressSet" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } - } + }, + "visibility": "public" }, { "constant": true, "functionSelector": "e63ab1e9", - "id": 714, + "id": 719, "mutability": "constant", "name": "PAUSER_ROLE", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1547:62:2", + "scope": 1106, + "src": "1611:62:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -6868,10 +7380,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 710, + "id": 715, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1547:7:2", + "src": "1611:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6883,14 +7395,14 @@ { "argumentTypes": null, "hexValue": "5041555345525f524f4c45", - "id": 712, + "id": 717, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1595:13:2", + "src": "1659:13:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a", @@ -6906,18 +7418,18 @@ "typeString": "literal_string \"PAUSER_ROLE\"" } ], - "id": 711, + "id": 716, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "1585:9:2", + "src": "1649:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 713, + "id": 718, "isConstant": false, "isLValue": false, "isPure": true, @@ -6925,7 +7437,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1585:24:2", + "src": "1649:24:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6937,13 +7449,13 @@ { "constant": false, "functionSelector": "c2b40ae4", - "id": 717, + "id": 722, "mutability": "mutable", "name": "roots", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1614:22:2", + "scope": 1106, + "src": "1678:22:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -6952,19 +7464,19 @@ }, "typeName": { "baseType": { - "id": 715, + "id": 720, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1614:7:2", + "src": "1678:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 716, + "id": 721, "length": null, "nodeType": "ArrayTypeName", - "src": "1614:9:2", + "src": "1678:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -6975,46 +7487,46 @@ }, { "constant": false, - "id": 721, + "id": 726, "mutability": "mutable", "name": "redeemers", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1641:63:2", + "scope": 1106, + "src": "1705:63:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet)" }, "typeName": { - "id": 720, + "id": 725, "keyType": { - "id": 718, + "id": 723, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1650:7:2", + "src": "1714:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "1641:45:2", + "src": "1705:45:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet)" }, "valueType": { "contractScope": null, - "id": 719, + "id": 724, "name": "EnumerableSet.AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, - "src": "1661:24:2", + "referencedDeclaration": 3947, + "src": "1725:24:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } } @@ -7025,28 +7537,28 @@ { "anonymous": false, "documentation": { - "id": 722, + "id": 727, "nodeType": "StructuredDocumentation", - "src": "1709:15:2", + "src": "1773:15:2", "text": "@dev Events" }, - "id": 726, + "id": 731, "name": "PotChecked", "nodeType": "EventDefinition", "parameters": { - "id": 725, + "id": 730, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 724, + "id": 729, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 726, - "src": "1744:11:2", + "scope": 731, + "src": "1808:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7054,10 +7566,10 @@ "typeString": "address" }, "typeName": { - "id": 723, + "id": 728, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1744:7:2", + "src": "1808:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7068,30 +7580,30 @@ "visibility": "internal" } ], - "src": "1743:13:2" + "src": "1807:13:2" }, - "src": "1727:30:2" + "src": "1791:30:2" }, { "anonymous": false, "documentation": null, - "id": 730, + "id": 735, "name": "DSChiefChecked", "nodeType": "EventDefinition", "parameters": { - "id": 729, + "id": 734, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 728, + "id": 733, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 730, - "src": "1781:11:2", + "scope": 735, + "src": "1845:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7099,10 +7611,10 @@ "typeString": "address" }, "typeName": { - "id": 727, + "id": 732, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1781:7:2", + "src": "1845:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7113,30 +7625,30 @@ "visibility": "internal" } ], - "src": "1780:13:2" + "src": "1844:13:2" }, - "src": "1760:34:2" + "src": "1824:34:2" }, { "anonymous": false, "documentation": null, - "id": 734, + "id": 739, "name": "FlipperChecked", "nodeType": "EventDefinition", "parameters": { - "id": 733, + "id": 738, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 732, + "id": 737, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 734, - "src": "1818:11:2", + "scope": 739, + "src": "1882:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7144,10 +7656,10 @@ "typeString": "address" }, "typeName": { - "id": 731, + "id": 736, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1818:7:2", + "src": "1882:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7158,25 +7670,25 @@ "visibility": "internal" } ], - "src": "1817:13:2" + "src": "1881:13:2" }, - "src": "1797:34:2" + "src": "1861:34:2" }, { "constant": false, "documentation": { - "id": 735, + "id": 740, "nodeType": "StructuredDocumentation", - "src": "1835:13:2", + "src": "1899:13:2", "text": "@dev Data" }, - "id": 737, + "id": 742, "mutability": "immutable", "name": "pot", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1851:31:2", + "scope": 1106, + "src": "1915:31:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -7185,11 +7697,11 @@ }, "typeName": { "contractScope": null, - "id": 736, + "id": 741, "name": "PotLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 664, - "src": "1851:7:2", + "src": "1915:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" @@ -7200,13 +7712,13 @@ }, { "constant": false, - "id": 739, + "id": 744, "mutability": "immutable", "name": "chief", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1886:36:2", + "scope": 1106, + "src": "1950:36:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -7215,11 +7727,11 @@ }, "typeName": { "contractScope": null, - "id": 738, + "id": 743, "name": "DSChiefLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 672, - "src": "1886:11:2", + "src": "1950:11:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" @@ -7230,13 +7742,13 @@ }, { "constant": false, - "id": 741, + "id": 746, "mutability": "immutable", "name": "flipper", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1926:38:2", + "scope": 1106, + "src": "1990:38:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -7245,11 +7757,11 @@ }, "typeName": { "contractScope": null, - "id": 740, + "id": 745, "name": "FlipperLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 697, - "src": "1926:11:2", + "src": "1990:11:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" @@ -7261,18 +7773,18 @@ { "constant": true, "documentation": { - "id": 742, + "id": 747, "nodeType": "StructuredDocumentation", - "src": "1969:13:2", + "src": "2033:13:2", "text": "@dev Math" }, - "id": 747, + "id": 752, "mutability": "constant", "name": "RAY", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1985:31:2", + "scope": 1106, + "src": "2049:31:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -7280,10 +7792,10 @@ "typeString": "uint256" }, "typeName": { - "id": 743, + "id": 748, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1985:7:2", + "src": "2049:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7295,7 +7807,7 @@ "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" }, - "id": 746, + "id": 751, "isConstant": false, "isLValue": false, "isPure": true, @@ -7303,14 +7815,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 744, + "id": 749, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2008:2:2", + "src": "2072:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -7323,14 +7835,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3237", - "id": 745, + "id": 750, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2014:2:2", + "src": "2078:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_27_by_1", @@ -7338,7 +7850,7 @@ }, "value": "27" }, - "src": "2008:8:2", + "src": "2072:8:2", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" @@ -7348,26 +7860,26 @@ }, { "body": { - "id": 767, + "id": 772, "nodeType": "Block", - "src": "2105:73:2", + "src": "2169:73:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 765, + "id": 770, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 758, + "id": 763, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 756, - "src": "2155:1:2", + "referencedDeclaration": 761, + "src": "2219:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7381,7 +7893,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 764, + "id": 769, "isConstant": false, "isLValue": false, "isPure": false, @@ -7391,12 +7903,12 @@ "arguments": [ { "argumentTypes": null, - "id": 761, + "id": 766, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 751, - "src": "2165:1:2", + "referencedDeclaration": 756, + "src": "2229:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7412,32 +7924,32 @@ ], "expression": { "argumentTypes": null, - "id": 759, + "id": 764, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "2159:1:2", + "referencedDeclaration": 754, + "src": "2223:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 760, + "id": 765, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 1776, - "src": "2159:5:2", + "referencedDeclaration": 1807, + "src": "2223:5: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": 762, + "id": 767, "isConstant": false, "isLValue": false, "isPure": false, @@ -7445,7 +7957,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2159:8:2", + "src": "2223:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7456,76 +7968,76 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 763, + "id": 768, "name": "RAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 747, - "src": "2170:3:2", + "referencedDeclaration": 752, + "src": "2234:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2159:14:2", + "src": "2223:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2155:18:2", + "src": "2219:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 766, + "id": 771, "nodeType": "ExpressionStatement", - "src": "2155:18:2" + "src": "2219:18:2" } ] }, "documentation": null, - "id": 768, + "id": 773, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 754, + "id": 759, "modifierName": { "argumentTypes": null, - "id": 753, + "id": 758, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "2071:13:2", + "referencedDeclaration": 4198, + "src": "2135:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2071:13:2" + "src": "2135:13:2" } ], "name": "rmul", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 752, + "id": 757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 749, + "id": 754, "mutability": "mutable", "name": "x", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2035:9:2", + "scope": 773, + "src": "2099:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7533,10 +8045,10 @@ "typeString": "uint256" }, "typeName": { - "id": 748, + "id": 753, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2035:7:2", + "src": "2099:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7547,13 +8059,13 @@ }, { "constant": false, - "id": 751, + "id": 756, "mutability": "mutable", "name": "y", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2046:9:2", + "scope": 773, + "src": "2110:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7561,10 +8073,10 @@ "typeString": "uint256" }, "typeName": { - "id": 750, + "id": 755, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2046:7:2", + "src": "2110:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7574,21 +8086,21 @@ "visibility": "internal" } ], - "src": "2034:22:2" + "src": "2098:22:2" }, "returnParameters": { - "id": 757, + "id": 762, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 756, + "id": 761, "mutability": "mutable", "name": "z", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2094:9:2", + "scope": 773, + "src": "2158:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7596,10 +8108,10 @@ "typeString": "uint256" }, "typeName": { - "id": 755, + "id": 760, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2094:7:2", + "src": "2158:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7609,19 +8121,19 @@ "visibility": "internal" } ], - "src": "2093:11:2" + "src": "2157:11:2" }, - "scope": 1075, - "src": "2021:157:2", + "scope": 1106, + "src": "2085:157:2", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 801, + "id": 818, "nodeType": "Block", - "src": "2203:682:2", + "src": "2313:355:2", "statements": [ { "expression": { @@ -7629,12 +8141,12 @@ "arguments": [ { "argumentTypes": null, - "id": 772, + "id": 783, "name": "DEFAULT_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1161, - "src": "2224:18:2", + "referencedDeclaration": 1192, + "src": "2334:18:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7645,18 +8157,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 773, + "id": 784, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "2244:5:2", + "referencedDeclaration": 1494, + "src": "2354:5:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 774, + "id": 785, "isConstant": false, "isLValue": false, "isPure": false, @@ -7664,7 +8176,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2244:7:2", + "src": "2354:7:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7683,18 +8195,18 @@ "typeString": "address" } ], - "id": 771, + "id": 782, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "2213:10:2", + "referencedDeclaration": 1375, + "src": "2323:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 775, + "id": 786, "isConstant": false, "isLValue": false, "isPure": false, @@ -7702,16 +8214,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2213:39:2", + "src": "2323:39:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 776, + "id": 787, "nodeType": "ExpressionStatement", - "src": "2213:39:2" + "src": "2323:39:2" }, { "expression": { @@ -7719,12 +8231,102 @@ "arguments": [ { "argumentTypes": null, - "id": 778, - "name": "PAUSER_ROLE", + "id": 789, + "name": "ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 714, - "src": "2274:11:2", + "src": "2384:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 790, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "2396:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2396:7:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 788, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1375, + "src": "2373:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2373:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 793, + "nodeType": "ExpressionStatement", + "src": "2373:31:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 795, + "name": "PAUSER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 719, + "src": "2425:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7735,18 +8337,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 779, + "id": 796, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "2287:5:2", + "referencedDeclaration": 1494, + "src": "2438:5:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 780, + "id": 797, "isConstant": false, "isLValue": false, "isPure": false, @@ -7754,7 +8356,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2287:7:2", + "src": "2438:7:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7773,18 +8375,18 @@ "typeString": "address" } ], - "id": 777, + "id": 794, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "2263:10:2", + "referencedDeclaration": 1375, + "src": "2414:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 781, + "id": 798, "isConstant": false, "isLValue": false, "isPure": false, @@ -7792,33 +8394,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2263:32:2", + "src": "2414:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 782, + "id": 799, "nodeType": "ExpressionStatement", - "src": "2263:32:2" + "src": "2414:32:2" }, { "expression": { "argumentTypes": null, - "id": 787, + "id": 804, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 783, + "id": 800, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "2421:3:2", + "referencedDeclaration": 742, + "src": "2490:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" @@ -7831,82 +8433,77 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307845413139304442444337616446323635323630656334644136653936373546643466354137386262", - "id": 785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2435:42:2", - "subdenomination": null, + "id": 802, + "name": "pot_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 775, + "src": "2504:4:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xEA190DBDC7adF265260ec4dA6e9675Fd4f5A78bb" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 784, + "id": 801, "name": "PotLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 664, - "src": "2427:7:2", + "src": "2496:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_PotLike_$664_$", "typeString": "type(contract PotLike)" } }, - "id": 786, + "id": 803, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2427:51:2", + "src": "2496:13:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "src": "2421:57:2", + "src": "2490:19:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 788, + "id": 805, "nodeType": "ExpressionStatement", - "src": "2421:57:2" + "src": "2490:19:2" }, { "expression": { "argumentTypes": null, - "id": 793, + "id": 810, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 789, + "id": 806, "name": "chief", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "2611:5:2", + "referencedDeclaration": 744, + "src": "2553:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" @@ -7919,82 +8516,77 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307862424646433736653934423334463732443936443035346233316636343234323439633133333764", - "id": 791, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2631:42:2", - "subdenomination": null, + "id": 808, + "name": "chief_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 777, + "src": "2573:6:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xbBFFC76e94B34F72D96D054b31f6424249c1337d" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 790, + "id": 807, "name": "DSChiefLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 672, - "src": "2619:11:2", + "src": "2561:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DSChiefLike_$672_$", "typeString": "type(contract DSChiefLike)" } }, - "id": 792, + "id": 809, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2619:55:2", + "src": "2561:19:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "src": "2611:63:2", + "src": "2553:27:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "id": 794, + "id": 811, "nodeType": "ExpressionStatement", - "src": "2611:63:2" + "src": "2553:27:2" }, { "expression": { "argumentTypes": null, - "id": 799, + "id": 816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 795, + "id": 812, "name": "flipper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "2814:7:2", + "referencedDeclaration": 746, + "src": "2631:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" @@ -8007,99 +8599,182 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307842343031333945613336443335643043394636613265363236303142363136463146666242443162", - "id": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2836:42:2", - "subdenomination": null, + "id": 814, + "name": "flipper_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "2653:8:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xB40139Ea36D35d0C9F6a2e62601B616F1FfbBD1b" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 796, + "id": 813, "name": "FlipperLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 697, - "src": "2824:11:2", + "src": "2641:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FlipperLike_$697_$", "typeString": "type(contract FlipperLike)" } }, - "id": 798, + "id": 815, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2824:55:2", + "src": "2641:21:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" } }, - "src": "2814:65:2", + "src": "2631:31:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_FlipperLike_$697", + "typeString": "contract FlipperLike" + } + }, + "id": 817, + "nodeType": "ExpressionStatement", + "src": "2631:31:2" + } + ] + }, + "documentation": null, + "id": 819, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 780, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 775, + "mutability": "mutable", + "name": "pot_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2258:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 774, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2258:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 777, + "mutability": "mutable", + "name": "chief_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2272:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 776, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2272:7:2", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_contract$_FlipperLike_$697", - "typeString": "contract FlipperLike" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 800, - "nodeType": "ExpressionStatement", - "src": "2814:65:2" + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 779, + "mutability": "mutable", + "name": "flipper_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2288:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2288:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" } - ] - }, - "documentation": null, - "id": 802, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 769, - "nodeType": "ParameterList", - "parameters": [], - "src": "2193:2:2" + ], + "src": "2257:48:2" }, "returnParameters": { - "id": 770, + "id": 781, "nodeType": "ParameterList", "parameters": [], - "src": "2203:0:2" + "src": "2313:0:2" }, - "scope": 1075, - "src": "2182:703:2", + "scope": 1106, + "src": "2246:422:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 809, + "id": 826, "nodeType": "Block", - "src": "3042:19:2", + "src": "2825:19:2", "statements": [ { "expression": { @@ -8107,7 +8782,7 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 806, + "id": 823, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -8115,13 +8790,13 @@ -19 ], "referencedDeclaration": -19, - "src": "3048:6:2", + "src": "2831:6:2", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 807, + "id": 824, "isConstant": false, "isLValue": false, "isPure": false, @@ -8129,26 +8804,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3048:8:2", + "src": "2831:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 808, + "id": 825, "nodeType": "ExpressionStatement", - "src": "3048:8:2" + "src": "2831:8:2" } ] }, "documentation": { - "id": 803, + "id": 820, "nodeType": "StructuredDocumentation", - "src": "2889:130:2", + "src": "2672:130:2", "text": "@notice Fallback function\n @dev Added not payable to revert transactions not matching any other function which send value" }, - "id": 810, + "id": 827, "implemented": true, "kind": "fallback", "modifiers": [], @@ -8156,45 +8831,228 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 804, + "id": 821, "nodeType": "ParameterList", "parameters": [], - "src": "3030:2:2" + "src": "2813:2:2" }, "returnParameters": { - "id": 805, + "id": 822, "nodeType": "ParameterList", "parameters": [], - "src": "3042:0:2" + "src": "2825:0:2" }, - "scope": 1075, - "src": "3022:39:2", + "scope": 1106, + "src": "2805:39:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { + "id": 840, + "nodeType": "Block", + "src": "2890:90:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 832, + "name": "ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 714, + "src": "2914:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 833, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2926:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2926:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 831, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1238, + "src": "2906:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2906:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43616c6c6572206973206e6f7420616e2061646d696e", + "id": 836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2939:24:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c42e6f213cb252dbb58053bcbc469c8ef3e91890f0261efae8e5d5a1aecda226", + "typeString": "literal_string \"Caller is not an admin\"" + }, + "value": "Caller is not an admin" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c42e6f213cb252dbb58053bcbc469c8ef3e91890f0261efae8e5d5a1aecda226", + "typeString": "literal_string \"Caller is not an admin\"" + } + ], + "id": 830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2898:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2898:66:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 838, + "nodeType": "ExpressionStatement", + "src": "2898:66:2" + }, + { + "id": 839, + "nodeType": "PlaceholderStatement", + "src": "2972:1:2" + } + ] + }, + "documentation": { + "id": 828, + "nodeType": "StructuredDocumentation", + "src": "2848:18:2", + "text": "@dev Modifiers" + }, + "id": 841, + "name": "onlyAdmin", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { "id": 829, + "nodeType": "ParameterList", + "parameters": [], + "src": "2887:2:2" + }, + "src": "2869:111:2", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 860, "nodeType": "Block", - "src": "3415:46:2", + "src": "3335:46:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 825, + "id": 856, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 823, + "id": 854, "name": "roots", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "3421:5:2", + "referencedDeclaration": 722, + "src": "3341:5:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" @@ -8204,39 +9062,39 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 824, + "id": 855, "name": "rootHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 814, - "src": "3429:10:2", + "referencedDeclaration": 845, + "src": "3349:10:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "src": "3421:18:2", + "src": "3341:18:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 826, + "id": 857, "nodeType": "ExpressionStatement", - "src": "3421:18:2" + "src": "3341:18:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 827, + "id": 858, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3452:4:2", + "src": "3372:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -8244,79 +9102,79 @@ }, "value": "true" }, - "functionReturnParameters": 822, - "id": 828, + "functionReturnParameters": 853, + "id": 859, "nodeType": "Return", - "src": "3445:11:2" + "src": "3365:11:2" } ] }, "documentation": { - "id": 811, + "id": 842, "nodeType": "StructuredDocumentation", - "src": "3065:245:2", + "src": "2985:245:2", "text": "@notice Set Merkle Tree Root Hashes array\n @dev Called by owner to update roots for different address batches by templateId\n @param rootHashes Root hashes of the Merkle Trees by templateId\n @return True if successfully updated" }, "functionSelector": "aca57703", - "id": 830, + "id": 861, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 817, + "id": 848, "modifierName": { "argumentTypes": null, - "id": 816, - "name": "onlyOwner", + "id": 847, + "name": "onlyAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "3376:9:2", + "referencedDeclaration": 841, + "src": "3296:9:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3376:9:2" + "src": "3296:9:2" }, { "arguments": null, - "id": 819, + "id": 850, "modifierName": { "argumentTypes": null, - "id": 818, + "id": 849, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "3386:13:2", + "referencedDeclaration": 4198, + "src": "3306:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3386:13:2" + "src": "3306:13:2" } ], "name": "setRootHashes", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 815, + "id": 846, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 814, + "id": 845, "mutability": "mutable", "name": "rootHashes", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 830, - "src": "3336:29:2", + "scope": 861, + "src": "3256:29:2", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -8325,19 +9183,19 @@ }, "typeName": { "baseType": { - "id": 812, + "id": 843, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3336:7:2", + "src": "3256:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 813, + "id": 844, "length": null, "nodeType": "ArrayTypeName", - "src": "3336:9:2", + "src": "3256:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -8347,21 +9205,21 @@ "visibility": "internal" } ], - "src": "3335:31:2" + "src": "3255:31:2" }, "returnParameters": { - "id": 822, + "id": 853, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 821, + "id": 852, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 830, - "src": "3409:4:2", + "scope": 861, + "src": "3329:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8369,10 +9227,10 @@ "typeString": "bool" }, "typeName": { - "id": 820, + "id": 851, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3409:4:2", + "src": "3329:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8382,34 +9240,34 @@ "visibility": "internal" } ], - "src": "3408:6:2" + "src": "3328:6:2" }, - "scope": 1075, - "src": "3313:148:2", + "scope": 1106, + "src": "3233:148:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 870, + "id": 901, "nodeType": "Block", - "src": "3713:129:2", + "src": "3633:129:2", "statements": [ { "assignments": [ - 841 + 872 ], "declarations": [ { "constant": false, - "id": 841, + "id": 872, "mutability": "mutable", "name": "slice", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 870, - "src": "3719:13:2", + "scope": 901, + "src": "3639:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8417,10 +9275,10 @@ "typeString": "uint256" }, "typeName": { - "id": 840, + "id": 871, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3719:7:2", + "src": "3639:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8430,18 +9288,18 @@ "visibility": "internal" } ], - "id": 846, + "id": 877, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 844, + "id": 875, "name": "guy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 833, - "src": "3743:3:2", + "referencedDeclaration": 864, + "src": "3663:3:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8457,18 +9315,18 @@ ], "expression": { "argumentTypes": null, - "id": 842, + "id": 873, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3735:3:2", + "referencedDeclaration": 742, + "src": "3655:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 843, + "id": 874, "isConstant": false, "isLValue": false, "isPure": false, @@ -8476,13 +9334,13 @@ "memberName": "pie", "nodeType": "MemberAccess", "referencedDeclaration": 648, - "src": "3735:7:2", + "src": "3655:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 845, + "id": 876, "isConstant": false, "isLValue": false, "isPure": false, @@ -8490,7 +9348,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3735:12:2", + "src": "3655:12:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8498,22 +9356,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3719:28:2" + "src": "3639:28:2" }, { "assignments": [ - 848 + 879 ], "declarations": [ { "constant": false, - "id": 848, + "id": 879, "mutability": "mutable", "name": "chi", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 870, - "src": "3753:11:2", + "scope": 901, + "src": "3673:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8521,10 +9379,10 @@ "typeString": "uint256" }, "typeName": { - "id": 847, + "id": 878, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3753:7:2", + "src": "3673:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8534,7 +9392,7 @@ "visibility": "internal" } ], - "id": 862, + "id": 893, "initialValue": { "argumentTypes": null, "condition": { @@ -8546,19 +9404,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 853, + "id": 884, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 849, + "id": 880, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -17, - "src": "3768:3:2", + "src": "3688:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8573,18 +9431,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 850, + "id": 881, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3774:3:2", + "referencedDeclaration": 742, + "src": "3694:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 851, + "id": 882, "isConstant": false, "isLValue": false, "isPure": false, @@ -8592,13 +9450,13 @@ "memberName": "rho", "nodeType": "MemberAccess", "referencedDeclaration": 658, - "src": "3774:7:2", + "src": "3694:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 852, + "id": 883, "isConstant": false, "isLValue": false, "isPure": false, @@ -8606,28 +9464,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3774:9:2", + "src": "3694:9:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3768:15:2", + "src": "3688:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 854, + "id": 885, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3767:17:2", + "src": "3687:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8640,18 +9498,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 858, + "id": 889, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3800:3:2", + "referencedDeclaration": 742, + "src": "3720:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 859, + "id": 890, "isConstant": false, "isLValue": false, "isPure": false, @@ -8659,13 +9517,13 @@ "memberName": "chi", "nodeType": "MemberAccess", "referencedDeclaration": 653, - "src": "3800:7:2", + "src": "3720:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 860, + "id": 891, "isConstant": false, "isLValue": false, "isPure": false, @@ -8673,20 +9531,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3800:9:2", + "src": "3720:9:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 861, + "id": 892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "3767:42:2", + "src": "3687:42:2", "trueExpression": { "argumentTypes": null, "arguments": [], @@ -8694,18 +9552,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 855, + "id": 886, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3787:3:2", + "referencedDeclaration": 742, + "src": "3707:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 856, + "id": 887, "isConstant": false, "isLValue": false, "isPure": false, @@ -8713,13 +9571,13 @@ "memberName": "drip", "nodeType": "MemberAccess", "referencedDeclaration": 663, - "src": "3787:8:2", + "src": "3707:8:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 857, + "id": 888, "isConstant": false, "isLValue": false, "isPure": false, @@ -8727,7 +9585,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3787:10:2", + "src": "3707:10:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8740,24 +9598,24 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3753:56:2" + "src": "3673:56:2" }, { "expression": { "argumentTypes": null, - "id": 868, + "id": 899, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 863, + "id": 894, "name": "wad", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 838, - "src": "3815:3:2", + "referencedDeclaration": 869, + "src": "3735:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8770,12 +9628,12 @@ "arguments": [ { "argumentTypes": null, - "id": 865, + "id": 896, "name": "slice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 841, - "src": "3826:5:2", + "referencedDeclaration": 872, + "src": "3746:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8783,12 +9641,12 @@ }, { "argumentTypes": null, - "id": 866, + "id": 897, "name": "chi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 848, - "src": "3833:3:2", + "referencedDeclaration": 879, + "src": "3753:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8806,18 +9664,18 @@ "typeString": "uint256" } ], - "id": 864, + "id": 895, "name": "rmul", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "3821:4:2", + "referencedDeclaration": 773, + "src": "3741:4:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) view returns (uint256)" } }, - "id": 867, + "id": 898, "isConstant": false, "isLValue": false, "isPure": false, @@ -8825,71 +9683,71 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3821:16:2", + "src": "3741:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3815:22:2", + "src": "3735:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 869, + "id": 900, "nodeType": "ExpressionStatement", - "src": "3815:22:2" + "src": "3735:22:2" } ] }, "documentation": { - "id": 831, + "id": 862, "nodeType": "StructuredDocumentation", - "src": "3465:169:2", + "src": "3385:169:2", "text": "@notice Return the accrued interest of guy on Pot\n @dev Based on Chai dai() function\n @param guy Address to check\n @return wad Accrued interest of guy" }, - "id": 871, + "id": 902, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 836, + "id": 867, "modifierName": { "argumentTypes": null, - "id": 835, + "id": 866, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "3677:13:2", + "referencedDeclaration": 4198, + "src": "3597:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3677:13:2" + "src": "3597:13:2" } ], "name": "_dai", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 834, + "id": 865, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 833, + "id": 864, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 871, - "src": "3651:11:2", + "scope": 902, + "src": "3571:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8897,10 +9755,10 @@ "typeString": "address" }, "typeName": { - "id": 832, + "id": 863, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3651:7:2", + "src": "3571:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8911,21 +9769,21 @@ "visibility": "internal" } ], - "src": "3650:13:2" + "src": "3570:13:2" }, "returnParameters": { - "id": 839, + "id": 870, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 838, + "id": 869, "mutability": "mutable", "name": "wad", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 871, - "src": "3700:11:2", + "scope": 902, + "src": "3620:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8933,10 +9791,10 @@ "typeString": "uint256" }, "typeName": { - "id": 837, + "id": 868, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3700:7:2", + "src": "3620:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8946,19 +9804,19 @@ "visibility": "internal" } ], - "src": "3699:13:2" + "src": "3619:13:2" }, - "scope": 1075, - "src": "3637:205:2", + "scope": 1106, + "src": "3557:205:2", "stateMutability": "view", "virtual": false, "visibility": "private" }, { "body": { - "id": 918, + "id": 949, "nodeType": "Block", - "src": "4094:266:2", + "src": "4014:266:2", "statements": [ { "expression": { @@ -8970,7 +9828,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 887, + "id": 918, "isConstant": false, "isLValue": false, "isPure": false, @@ -8982,18 +9840,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 883, + "id": 914, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4113:3:2", + "src": "4033:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 884, + "id": 915, "isConstant": false, "isLValue": false, "isPure": false, @@ -9001,7 +9859,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4113:10:2", + "src": "4033:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9015,18 +9873,18 @@ "typeString": "address payable" } ], - "id": 882, + "id": 913, "name": "_dai", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 871, - "src": "4108:4:2", + "referencedDeclaration": 902, + "src": "4028:4:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 885, + "id": 916, "isConstant": false, "isLValue": false, "isPure": false, @@ -9034,7 +9892,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4108:16:2", + "src": "4028:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9046,14 +9904,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 886, + "id": 917, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4128:7:2", + "src": "4048:7:2", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", @@ -9061,7 +9919,7 @@ }, "value": "1" }, - "src": "4108:27:2", + "src": "4028:27:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9070,14 +9928,14 @@ { "argumentTypes": null, "hexValue": "43616c6c657220686173206e6f7420616363727565642031206f72206d6f72652044616920696e746572657374206f6e20506f74", - "id": 888, + "id": 919, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4137:54:2", + "src": "4057:54:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_94e2bcffd09237077ab7bf5d72c9dbecf83833ba747ce44f2fb8b96ffffa64a1", @@ -9097,7 +9955,7 @@ "typeString": "literal_string \"Caller has not accrued 1 or more Dai interest on Pot\"" } ], - "id": 881, + "id": 912, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -9105,13 +9963,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4100:7:2", + "src": "4020:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 889, + "id": 920, "isConstant": false, "isLValue": false, "isPure": false, @@ -9119,21 +9977,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4100:92:2", + "src": "4020:92:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 890, + "id": 921, "nodeType": "ExpressionStatement", - "src": "4100:92:2" + "src": "4020:92:2" }, { "condition": { "argumentTypes": null, - "id": 898, + "id": 929, "isConstant": false, "isLValue": false, "isPure": false, @@ -9141,7 +9999,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4202:43:2", + "src": "4122:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -9149,18 +10007,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 895, + "id": 926, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4234:3:2", + "src": "4154:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 896, + "id": 927, "isConstant": false, "isLValue": false, "isPure": false, @@ -9168,7 +10026,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4234:10:2", + "src": "4154:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9186,26 +10044,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 891, + "id": 922, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4203:9:2", + "referencedDeclaration": 726, + "src": "4123:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 893, + "id": 924, "indexExpression": { "argumentTypes": null, - "id": 892, + "id": 923, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "4213:10:2", + "referencedDeclaration": 905, + "src": "4133:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9216,27 +10074,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4203:21:2", + "src": "4123:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 894, + "id": 925, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "4203:30:2", + "referencedDeclaration": 4016, + "src": "4123:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 897, + "id": 928, "isConstant": false, "isLValue": false, "isPure": false, @@ -9244,7 +10102,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4203:42:2", + "src": "4123:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9257,13 +10115,13 @@ } }, "falseBody": null, - "id": 910, + "id": 941, "nodeType": "IfStatement", - "src": "4198:108:2", + "src": "4118:108:2", "trueBody": { - "id": 909, + "id": 940, "nodeType": "Block", - "src": "4247:59:2", + "src": "4167:59:2", "statements": [ { "expression": { @@ -9276,18 +10134,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 904, + "id": 935, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4287:3:2", + "src": "4207:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 905, + "id": 936, "isConstant": false, "isLValue": false, "isPure": false, @@ -9295,7 +10153,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4287:10:2", + "src": "4207:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9313,26 +10171,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 900, + "id": 931, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4261:9:2", + "referencedDeclaration": 726, + "src": "4181:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 902, + "id": 933, "indexExpression": { "argumentTypes": null, - "id": 901, + "id": 932, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "4271:10:2", + "referencedDeclaration": 905, + "src": "4191:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9343,27 +10201,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4261:21:2", + "src": "4181:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 903, + "id": 934, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "4261:25:2", + "referencedDeclaration": 3970, + "src": "4181:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 906, + "id": 937, "isConstant": false, "isLValue": false, "isPure": false, @@ -9371,7 +10229,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4261:37:2", + "src": "4181:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9386,7 +10244,7 @@ "typeString": "bool" } ], - "id": 899, + "id": 930, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -9394,13 +10252,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4253:7:2", + "src": "4173:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 907, + "id": 938, "isConstant": false, "isLValue": false, "isPure": false, @@ -9408,16 +10266,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4253:46:2", + "src": "4173:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 908, + "id": 939, "nodeType": "ExpressionStatement", - "src": "4253:46:2" + "src": "4173:46:2" } ] } @@ -9430,18 +10288,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 912, + "id": 943, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4327:3:2", + "src": "4247:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 913, + "id": 944, "isConstant": false, "isLValue": false, "isPure": false, @@ -9449,7 +10307,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4327:10:2", + "src": "4247:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9463,18 +10321,18 @@ "typeString": "address payable" } ], - "id": 911, + "id": 942, "name": "PotChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 726, - "src": "4316:10:2", + "referencedDeclaration": 731, + "src": "4236:10:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 914, + "id": 945, "isConstant": false, "isLValue": false, "isPure": false, @@ -9482,29 +10340,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4316:22:2", + "src": "4236:22:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 915, + "id": 946, "nodeType": "EmitStatement", - "src": "4311:27:2" + "src": "4231:27:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 916, + "id": 947, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4351:4:2", + "src": "4271:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9512,60 +10370,60 @@ }, "value": "true" }, - "functionReturnParameters": 880, - "id": 917, + "functionReturnParameters": 911, + "id": 948, "nodeType": "Return", - "src": "4344:11:2" + "src": "4264:11:2" } ] }, "documentation": { - "id": 872, + "id": 903, "nodeType": "StructuredDocumentation", - "src": "3846:165:2", + "src": "3766:165:2", "text": "@notice Pot Challenge\n @dev Keeps track of the address of the caller if successful\n @return True if the caller successfully checked for activity on Pot" }, "functionSelector": "baf2868b", - "id": 919, + "id": 950, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 877, + "id": 908, "modifierName": { "argumentTypes": null, - "id": 876, + "id": 907, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "4065:13:2", + "referencedDeclaration": 4198, + "src": "3985:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4065:13:2" + "src": "3985:13:2" } ], "name": "potChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 875, + "id": 906, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 874, + "id": 905, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 919, - "src": "4036:18:2", + "scope": 950, + "src": "3956:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9573,10 +10431,10 @@ "typeString": "uint256" }, "typeName": { - "id": 873, + "id": 904, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4036:7:2", + "src": "3956:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9586,21 +10444,21 @@ "visibility": "internal" } ], - "src": "4035:20:2" + "src": "3955:20:2" }, "returnParameters": { - "id": 880, + "id": 911, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 879, + "id": 910, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 919, - "src": "4088:4:2", + "scope": 950, + "src": "4008:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9608,10 +10466,10 @@ "typeString": "bool" }, "typeName": { - "id": 878, + "id": 909, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4088:4:2", + "src": "4008:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9621,19 +10479,19 @@ "visibility": "internal" } ], - "src": "4087:6:2" + "src": "4007:6:2" }, - "scope": 1075, - "src": "4014:346:2", + "scope": 1106, + "src": "3934:346:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 967, + "id": 998, "nodeType": "Block", - "src": "4622:263:2", + "src": "4542:264:2", "statements": [ { "expression": { @@ -9645,7 +10503,7 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 936, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, @@ -9657,18 +10515,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 932, + "id": 963, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4648:3:2", + "src": "4568:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 933, + "id": 964, "isConstant": false, "isLValue": false, "isPure": false, @@ -9676,7 +10534,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4648:10:2", + "src": "4568:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9692,18 +10550,18 @@ ], "expression": { "argumentTypes": null, - "id": 930, + "id": 961, "name": "chief", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "4636:5:2", + "referencedDeclaration": 744, + "src": "4556:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "id": 931, + "id": 962, "isConstant": false, "isLValue": false, "isPure": false, @@ -9711,13 +10569,13 @@ "memberName": "votes", "nodeType": "MemberAccess", "referencedDeclaration": 671, - "src": "4636:11:2", + "src": "4556:11:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$", "typeString": "function (address) view external returns (bytes32)" } }, - "id": 934, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, @@ -9725,7 +10583,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4636:23:2", + "src": "4556:23:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -9737,14 +10595,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783030", - "id": 935, + "id": 966, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4663:4:2", + "src": "4583:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9752,7 +10610,7 @@ }, "value": "0x00" }, - "src": "4636:31:2", + "src": "4556:31:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9760,21 +10618,21 @@ }, { "argumentTypes": null, - "hexValue": "43616c6c6572206973206e6f7420766f74696e6720696e206120476f7665726e616e636520506f6c6c", - "id": 937, + "hexValue": "43616c6c6572206973206e6f7420766f74696e6720696e20616e20457865637574697665205370656c6c", + "id": 968, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4669:43:2", + "src": "4589:44:2", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_67b208a9b43a5545a1a8888c99a64b4cd7f58aa52580dee6f4ec112b3e80c46b", - "typeString": "literal_string \"Caller is not voting in a Governance Poll\"" + "typeIdentifier": "t_stringliteral_65880bfcd366c16deddf50d8f8606d011e26303e9f1a09e543bd3e08c12c2544", + "typeString": "literal_string \"Caller is not voting in an Executive Spell\"" }, - "value": "Caller is not voting in a Governance Poll" + "value": "Caller is not voting in an Executive Spell" } ], "expression": { @@ -9784,11 +10642,11 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_67b208a9b43a5545a1a8888c99a64b4cd7f58aa52580dee6f4ec112b3e80c46b", - "typeString": "literal_string \"Caller is not voting in a Governance Poll\"" + "typeIdentifier": "t_stringliteral_65880bfcd366c16deddf50d8f8606d011e26303e9f1a09e543bd3e08c12c2544", + "typeString": "literal_string \"Caller is not voting in an Executive Spell\"" } ], - "id": 929, + "id": 960, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -9796,13 +10654,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4628:7:2", + "src": "4548:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 938, + "id": 969, "isConstant": false, "isLValue": false, "isPure": false, @@ -9810,21 +10668,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4628:85:2", + "src": "4548:86:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 939, + "id": 970, "nodeType": "ExpressionStatement", - "src": "4628:85:2" + "src": "4548:86:2" }, { "condition": { "argumentTypes": null, - "id": 947, + "id": 978, "isConstant": false, "isLValue": false, "isPure": false, @@ -9832,7 +10690,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4723:43:2", + "src": "4644:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -9840,18 +10698,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 944, + "id": 975, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4755:3:2", + "src": "4676:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 945, + "id": 976, "isConstant": false, "isLValue": false, "isPure": false, @@ -9859,7 +10717,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4755:10:2", + "src": "4676:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9877,26 +10735,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 940, + "id": 971, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4724:9:2", + "referencedDeclaration": 726, + "src": "4645:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 942, + "id": 973, "indexExpression": { "argumentTypes": null, - "id": 941, + "id": 972, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "4734:10:2", + "referencedDeclaration": 953, + "src": "4655:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9907,27 +10765,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4724:21:2", + "src": "4645:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 943, + "id": 974, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "4724:30:2", + "referencedDeclaration": 4016, + "src": "4645:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 946, + "id": 977, "isConstant": false, "isLValue": false, "isPure": false, @@ -9935,7 +10793,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4724:42:2", + "src": "4645:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9948,13 +10806,13 @@ } }, "falseBody": null, - "id": 959, + "id": 990, "nodeType": "IfStatement", - "src": "4719:108:2", + "src": "4640:108:2", "trueBody": { - "id": 958, + "id": 989, "nodeType": "Block", - "src": "4768:59:2", + "src": "4689:59:2", "statements": [ { "expression": { @@ -9967,18 +10825,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 953, + "id": 984, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4808:3:2", + "src": "4729:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 954, + "id": 985, "isConstant": false, "isLValue": false, "isPure": false, @@ -9986,7 +10844,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4808:10:2", + "src": "4729:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10004,26 +10862,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 949, + "id": 980, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4782:9:2", + "referencedDeclaration": 726, + "src": "4703:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 951, + "id": 982, "indexExpression": { "argumentTypes": null, - "id": 950, + "id": 981, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "4792:10:2", + "referencedDeclaration": 953, + "src": "4713:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10034,27 +10892,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4782:21:2", + "src": "4703:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 952, + "id": 983, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "4782:25:2", + "referencedDeclaration": 3970, + "src": "4703:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 955, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, @@ -10062,7 +10920,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4782:37:2", + "src": "4703:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10077,7 +10935,7 @@ "typeString": "bool" } ], - "id": 948, + "id": 979, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -10085,13 +10943,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4774:7:2", + "src": "4695:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 956, + "id": 987, "isConstant": false, "isLValue": false, "isPure": false, @@ -10099,16 +10957,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4774:46:2", + "src": "4695:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 957, + "id": 988, "nodeType": "ExpressionStatement", - "src": "4774:46:2" + "src": "4695:46:2" } ] } @@ -10121,18 +10979,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 961, + "id": 992, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4852:3:2", + "src": "4773:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 962, + "id": 993, "isConstant": false, "isLValue": false, "isPure": false, @@ -10140,7 +10998,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4852:10:2", + "src": "4773:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10154,18 +11012,18 @@ "typeString": "address payable" } ], - "id": 960, + "id": 991, "name": "DSChiefChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "4837:14:2", + "referencedDeclaration": 735, + "src": "4758:14:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 963, + "id": 994, "isConstant": false, "isLValue": false, "isPure": false, @@ -10173,29 +11031,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4837:26:2", + "src": "4758:26:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 964, + "id": 995, "nodeType": "EmitStatement", - "src": "4832:31:2" + "src": "4753:31:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 965, + "id": 996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4876:4:2", + "src": "4797:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10203,60 +11061,60 @@ }, "value": "true" }, - "functionReturnParameters": 928, - "id": 966, + "functionReturnParameters": 959, + "id": 997, "nodeType": "Return", - "src": "4869:11:2" + "src": "4790:11:2" } ] }, "documentation": { - "id": 920, + "id": 951, "nodeType": "StructuredDocumentation", - "src": "4364:173:2", + "src": "4284:173:2", "text": "@notice DSChief Challenge\n @dev Keeps track of the address of the caller if successful\n @return True if the caller successfully checked for activity on DSChief" }, "functionSelector": "f36618a6", - "id": 968, + "id": 999, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 925, + "id": 956, "modifierName": { "argumentTypes": null, - "id": 924, + "id": 955, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "4593:13:2", + "referencedDeclaration": 4198, + "src": "4513:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4593:13:2" + "src": "4513:13:2" } ], "name": "chiefChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 923, + "id": 954, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 922, + "id": 953, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 968, - "src": "4564:18:2", + "scope": 999, + "src": "4484:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10264,10 +11122,10 @@ "typeString": "uint256" }, "typeName": { - "id": 921, + "id": 952, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4564:7:2", + "src": "4484:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10277,21 +11135,21 @@ "visibility": "internal" } ], - "src": "4563:20:2" + "src": "4483:20:2" }, "returnParameters": { - "id": 928, + "id": 959, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 927, + "id": 958, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 968, - "src": "4616:4:2", + "scope": 999, + "src": "4536:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10299,10 +11157,10 @@ "typeString": "bool" }, "typeName": { - "id": 926, + "id": 957, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4616:4:2", + "src": "4536:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10312,19 +11170,19 @@ "visibility": "internal" } ], - "src": "4615:6:2" + "src": "4535:6:2" }, - "scope": 1075, - "src": "4540:345:2", + "scope": 1106, + "src": "4460:346:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1019, + "id": 1050, "nodeType": "Block", - "src": "5192:299:2", + "src": "5113:299:2", "statements": [ { "expression": { @@ -10336,7 +11194,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 988, + "id": 1019, "isConstant": false, "isLValue": false, "isPure": false, @@ -10348,12 +11206,12 @@ "arguments": [ { "argumentTypes": null, - "id": 983, + "id": 1014, "name": "bidId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "5219:5:2", + "referencedDeclaration": 1004, + "src": "5140:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10369,18 +11227,18 @@ ], "expression": { "argumentTypes": null, - "id": 981, + "id": 1012, "name": "flipper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "5206:7:2", + "referencedDeclaration": 746, + "src": "5127:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" } }, - "id": 982, + "id": 1013, "isConstant": false, "isLValue": false, "isPure": false, @@ -10388,13 +11246,13 @@ "memberName": "bids", "nodeType": "MemberAccess", "referencedDeclaration": 696, - "src": "5206:12:2", + "src": "5127:12:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Bid_$689_memory_ptr_$", "typeString": "function (uint256) view external returns (struct FlipperLike.Bid memory)" } }, - "id": 984, + "id": 1015, "isConstant": false, "isLValue": false, "isPure": false, @@ -10402,14 +11260,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5206:19:2", + "src": "5127:19:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Bid_$689_memory_ptr", "typeString": "struct FlipperLike.Bid memory" } }, - "id": 985, + "id": 1016, "isConstant": false, "isLValue": true, "isPure": false, @@ -10417,7 +11275,7 @@ "memberName": "guy", "nodeType": "MemberAccess", "referencedDeclaration": 678, - "src": "5206:23:2", + "src": "5127:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10429,18 +11287,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 986, + "id": 1017, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5233:3:2", + "src": "5154:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 987, + "id": 1018, "isConstant": false, "isLValue": false, "isPure": false, @@ -10448,13 +11306,13 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5233:10:2", + "src": "5154:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "5206:37:2", + "src": "5127:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10463,14 +11321,14 @@ { "argumentTypes": null, "hexValue": "43616c6c6572206973206e6f742074686520686967682062696464657220696e207468652063757272656e742042696420696e20436f6c6c61746572616c2041756374696f6e73", - "id": 989, + "id": 1020, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5245:73:2", + "src": "5166:73:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e88b03e76bc82122d18e72f0c400e240eb0423ded12b22b77672909d807e7840", @@ -10490,7 +11348,7 @@ "typeString": "literal_string \"Caller is not the high bidder in the current Bid in Collateral Auctions\"" } ], - "id": 980, + "id": 1011, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -10498,13 +11356,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5198:7:2", + "src": "5119:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 990, + "id": 1021, "isConstant": false, "isLValue": false, "isPure": false, @@ -10512,21 +11370,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5198:121:2", + "src": "5119:121:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 991, + "id": 1022, "nodeType": "ExpressionStatement", - "src": "5198:121:2" + "src": "5119:121:2" }, { "condition": { "argumentTypes": null, - "id": 999, + "id": 1030, "isConstant": false, "isLValue": false, "isPure": false, @@ -10534,7 +11392,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5329:43:2", + "src": "5250:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -10542,18 +11400,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 996, + "id": 1027, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5361:3:2", + "src": "5282:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 997, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, @@ -10561,7 +11419,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5361:10:2", + "src": "5282:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10579,26 +11437,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 992, + "id": 1023, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5330:9:2", + "referencedDeclaration": 726, + "src": "5251:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 994, + "id": 1025, "indexExpression": { "argumentTypes": null, - "id": 993, + "id": 1024, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5340:10:2", + "referencedDeclaration": 1002, + "src": "5261:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10609,27 +11467,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5330:21:2", + "src": "5251:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 995, + "id": 1026, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "5330:30:2", + "referencedDeclaration": 4016, + "src": "5251:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 998, + "id": 1029, "isConstant": false, "isLValue": false, "isPure": false, @@ -10637,7 +11495,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5330:42:2", + "src": "5251:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10650,13 +11508,13 @@ } }, "falseBody": null, - "id": 1011, + "id": 1042, "nodeType": "IfStatement", - "src": "5325:108:2", + "src": "5246:108:2", "trueBody": { - "id": 1010, + "id": 1041, "nodeType": "Block", - "src": "5374:59:2", + "src": "5295:59:2", "statements": [ { "expression": { @@ -10669,18 +11527,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1005, + "id": 1036, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5414:3:2", + "src": "5335:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1006, + "id": 1037, "isConstant": false, "isLValue": false, "isPure": false, @@ -10688,7 +11546,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5414:10:2", + "src": "5335:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10706,26 +11564,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1001, + "id": 1032, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5388:9:2", + "referencedDeclaration": 726, + "src": "5309:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 1003, + "id": 1034, "indexExpression": { "argumentTypes": null, - "id": 1002, + "id": 1033, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5398:10:2", + "referencedDeclaration": 1002, + "src": "5319:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10736,27 +11594,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5388:21:2", + "src": "5309:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1004, + "id": 1035, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "5388:25:2", + "referencedDeclaration": 3970, + "src": "5309:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 1007, + "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, @@ -10764,7 +11622,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5388:37:2", + "src": "5309:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10779,7 +11637,7 @@ "typeString": "bool" } ], - "id": 1000, + "id": 1031, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -10787,13 +11645,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5380:7:2", + "src": "5301:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1008, + "id": 1039, "isConstant": false, "isLValue": false, "isPure": false, @@ -10801,16 +11659,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5380:46:2", + "src": "5301:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1009, + "id": 1040, "nodeType": "ExpressionStatement", - "src": "5380:46:2" + "src": "5301:46:2" } ] } @@ -10823,18 +11681,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1013, + "id": 1044, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5458:3:2", + "src": "5379:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1014, + "id": 1045, "isConstant": false, "isLValue": false, "isPure": false, @@ -10842,7 +11700,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5458:10:2", + "src": "5379:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10856,18 +11714,18 @@ "typeString": "address payable" } ], - "id": 1012, + "id": 1043, "name": "FlipperChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 734, - "src": "5443:14:2", + "referencedDeclaration": 739, + "src": "5364:14:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1015, + "id": 1046, "isConstant": false, "isLValue": false, "isPure": false, @@ -10875,29 +11733,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5443:26:2", + "src": "5364:26:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1016, + "id": 1047, "nodeType": "EmitStatement", - "src": "5438:31:2" + "src": "5359:31:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 1017, + "id": 1048, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5482:4:2", + "src": "5403:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10905,60 +11763,60 @@ }, "value": "true" }, - "functionReturnParameters": 979, - "id": 1018, + "functionReturnParameters": 1010, + "id": 1049, "nodeType": "Return", - "src": "5475:11:2" + "src": "5396:11:2" } ] }, "documentation": { - "id": 969, + "id": 1000, "nodeType": "StructuredDocumentation", - "src": "4889:201:2", + "src": "4810:201:2", "text": "@notice Flipper Challenge\n @dev Keeps track of the address of the caller if successful\n @dev guy, high bidder\n @return True if the caller successfully checked for activity on Flipper" }, "functionSelector": "9c1c94fd", - "id": 1020, + "id": 1051, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 976, + "id": 1007, "modifierName": { "argumentTypes": null, - "id": 975, + "id": 1006, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "5163:13:2", + "referencedDeclaration": 4198, + "src": "5084:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5163:13:2" + "src": "5084:13:2" } ], "name": "flipperChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 974, + "id": 1005, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 971, + "id": 1002, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5119:18:2", + "scope": 1051, + "src": "5040:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10966,10 +11824,10 @@ "typeString": "uint256" }, "typeName": { - "id": 970, + "id": 1001, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5119:7:2", + "src": "5040:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10980,13 +11838,13 @@ }, { "constant": false, - "id": 973, + "id": 1004, "mutability": "mutable", "name": "bidId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5139:13:2", + "scope": 1051, + "src": "5060:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10994,10 +11852,10 @@ "typeString": "uint256" }, "typeName": { - "id": 972, + "id": 1003, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5139:7:2", + "src": "5060:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11007,21 +11865,21 @@ "visibility": "internal" } ], - "src": "5118:35:2" + "src": "5039:35:2" }, "returnParameters": { - "id": 979, + "id": 1010, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 978, + "id": 1009, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5186:4:2", + "scope": 1051, + "src": "5107:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11029,10 +11887,10 @@ "typeString": "bool" }, "typeName": { - "id": 977, + "id": 1008, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5186:4:2", + "src": "5107:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11042,19 +11900,19 @@ "visibility": "internal" } ], - "src": "5185:6:2" + "src": "5106:6:2" }, - "scope": 1075, - "src": "5093:398:2", + "scope": 1106, + "src": "5014:398:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1039, + "id": 1070, "nodeType": "Block", - "src": "5750:53:2", + "src": "5671:53:2", "statements": [ { "expression": { @@ -11062,12 +11920,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1036, + "id": 1067, "name": "guy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "5794:3:2", + "referencedDeclaration": 1056, + "src": "5715:3:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11085,26 +11943,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1032, + "id": 1063, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5763:9:2", + "referencedDeclaration": 726, + "src": "5684:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 1034, + "id": 1065, "indexExpression": { "argumentTypes": null, - "id": 1033, + "id": 1064, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "5773:10:2", + "referencedDeclaration": 1054, + "src": "5694:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11115,27 +11973,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5763:21:2", + "src": "5684:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1035, + "id": 1066, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "5763:30:2", + "referencedDeclaration": 4016, + "src": "5684:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 1037, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, @@ -11143,67 +12001,67 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5763:35:2", + "src": "5684:35:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1031, - "id": 1038, + "functionReturnParameters": 1062, + "id": 1069, "nodeType": "Return", - "src": "5756:42:2" + "src": "5677:42:2" } ] }, "documentation": { - "id": 1021, + "id": 1052, "nodeType": "StructuredDocumentation", - "src": "5495:160:2", + "src": "5416:160:2", "text": "@notice Check if guy is a redeemer\n @dev Verify if the address of guy exists\n @param guy Address to verify\n @return True if guy is a redeemer" }, "functionSelector": "ebfa62b9", - "id": 1040, + "id": 1071, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1028, + "id": 1059, "modifierName": { "argumentTypes": null, - "id": 1027, + "id": 1058, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "5721:13:2", + "referencedDeclaration": 4198, + "src": "5642:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5721:13:2" + "src": "5642:13:2" } ], "name": "verify", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1026, + "id": 1057, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1023, + "id": 1054, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5674:18:2", + "scope": 1071, + "src": "5595:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11211,10 +12069,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1022, + "id": 1053, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5674:7:2", + "src": "5595:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11225,13 +12083,13 @@ }, { "constant": false, - "id": 1025, + "id": 1056, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5694:11:2", + "scope": 1071, + "src": "5615:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11239,10 +12097,10 @@ "typeString": "address" }, "typeName": { - "id": 1024, + "id": 1055, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5694:7:2", + "src": "5615:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11253,21 +12111,21 @@ "visibility": "internal" } ], - "src": "5673:33:2" + "src": "5594:33:2" }, "returnParameters": { - "id": 1031, + "id": 1062, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1030, + "id": 1061, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5744:4:2", + "scope": 1071, + "src": "5665:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11275,10 +12133,10 @@ "typeString": "bool" }, "typeName": { - "id": 1029, + "id": 1060, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5744:4:2", + "src": "5665:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11288,19 +12146,19 @@ "visibility": "internal" } ], - "src": "5743:6:2" + "src": "5664:6:2" }, - "scope": 1075, - "src": "5658:145:2", + "scope": 1106, + "src": "5579:145:2", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 1056, + "id": 1087, "nodeType": "Block", - "src": "5921:113:2", + "src": "5842:113:2", "statements": [ { "expression": { @@ -11311,12 +12169,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1046, + "id": 1077, "name": "PAUSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, - "src": "5943:11:2", + "referencedDeclaration": 719, + "src": "5864:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11326,18 +12184,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1047, + "id": 1078, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5956:3:2", + "src": "5877:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1048, + "id": 1079, "isConstant": false, "isLValue": false, "isPure": false, @@ -11345,7 +12203,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5956:10:2", + "src": "5877:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11363,18 +12221,18 @@ "typeString": "address payable" } ], - "id": 1045, + "id": 1076, "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, - "src": "5935:7:2", + "referencedDeclaration": 1238, + "src": "5856:7:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) view returns (bool)" } }, - "id": 1049, + "id": 1080, "isConstant": false, "isLValue": false, "isPure": false, @@ -11382,7 +12240,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5935:32:2", + "src": "5856:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11392,14 +12250,14 @@ { "argumentTypes": null, "hexValue": "4d616b65724261646765733a206d75737420686176652070617573657220726f6c6520746f207061757365", - "id": 1050, + "id": 1081, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5969:45:2", + "src": "5890:45:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d33b68c439b8482d10dd00f9785755fa4ae9979ec8a8ee9bf8b872747d1b8f67", @@ -11419,7 +12277,7 @@ "typeString": "literal_string \"MakerBadges: must have pauser role to pause\"" } ], - "id": 1044, + "id": 1075, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11427,13 +12285,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5927:7:2", + "src": "5848:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1051, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, @@ -11441,16 +12299,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5927:88:2", + "src": "5848:88:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1052, + "id": 1083, "nodeType": "ExpressionStatement", - "src": "5927:88:2" + "src": "5848:88:2" }, { "expression": { @@ -11458,18 +12316,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1053, + "id": 1084, "name": "_pause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4193, - "src": "6021:6:2", + "referencedDeclaration": 4224, + "src": "5942:6:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1054, + "id": 1085, "isConstant": false, "isLValue": false, "isPure": false, @@ -11477,27 +12335,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6021:8:2", + "src": "5942:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1055, + "id": 1086, "nodeType": "ExpressionStatement", - "src": "6021:8:2" + "src": "5942:8:2" } ] }, "documentation": { - "id": 1041, + "id": 1072, "nodeType": "StructuredDocumentation", - "src": "5807:85:2", + "src": "5728:85:2", "text": "@notice Pause all the functions\n @dev the caller must have the 'PAUSER_ROLE'" }, "functionSelector": "8456cb59", - "id": 1057, + "id": 1088, "implemented": true, "kind": "function", "modifiers": [], @@ -11505,28 +12363,28 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1042, + "id": 1073, "nodeType": "ParameterList", "parameters": [], - "src": "5909:2:2" + "src": "5830:2:2" }, "returnParameters": { - "id": 1043, + "id": 1074, "nodeType": "ParameterList", "parameters": [], - "src": "5921:0:2" + "src": "5842:0:2" }, - "scope": 1075, - "src": "5895:139:2", + "scope": 1106, + "src": "5816:139:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1073, + "id": 1104, "nodeType": "Block", - "src": "6156:127:2", + "src": "6077:127:2", "statements": [ { "expression": { @@ -11537,12 +12395,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1063, + "id": 1094, "name": "PAUSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, - "src": "6182:11:2", + "referencedDeclaration": 719, + "src": "6103:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11552,18 +12410,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1064, + "id": 1095, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "6195:3:2", + "src": "6116:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1065, + "id": 1096, "isConstant": false, "isLValue": false, "isPure": false, @@ -11571,7 +12429,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6195:10:2", + "src": "6116:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11589,18 +12447,18 @@ "typeString": "address payable" } ], - "id": 1062, + "id": 1093, "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, - "src": "6174:7:2", + "referencedDeclaration": 1238, + "src": "6095:7:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) view returns (bool)" } }, - "id": 1066, + "id": 1097, "isConstant": false, "isLValue": false, "isPure": false, @@ -11608,7 +12466,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6174:32:2", + "src": "6095:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11618,14 +12476,14 @@ { "argumentTypes": null, "hexValue": "4d616b65724261646765733a206d75737420686176652070617573657220726f6c6520746f20756e7061757365", - "id": 1067, + "id": 1098, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6208:47:2", + "src": "6129:47:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e81d67bdac033cbd58eea8cc6d19c5b2672fe1faa73f3d7c71703b8e96106b7b", @@ -11645,7 +12503,7 @@ "typeString": "literal_string \"MakerBadges: must have pauser role to unpause\"" } ], - "id": 1061, + "id": 1092, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11653,13 +12511,13 @@ -18 ], "referencedDeclaration": -18, - "src": "6166:7:2", + "src": "6087:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1068, + "id": 1099, "isConstant": false, "isLValue": false, "isPure": false, @@ -11667,16 +12525,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6166:90:2", + "src": "6087:90:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1069, + "id": 1100, "nodeType": "ExpressionStatement", - "src": "6166:90:2" + "src": "6087:90:2" }, { "expression": { @@ -11684,18 +12542,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1070, + "id": 1101, "name": "_unpause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4209, - "src": "6266:8:2", + "referencedDeclaration": 4240, + "src": "6187:8:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1071, + "id": 1102, "isConstant": false, "isLValue": false, "isPure": false, @@ -11703,27 +12561,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6266:10:2", + "src": "6187:10:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1072, + "id": 1103, "nodeType": "ExpressionStatement", - "src": "6266:10:2" + "src": "6187:10:2" } ] }, "documentation": { - "id": 1058, + "id": 1089, "nodeType": "StructuredDocumentation", - "src": "6038:87:2", + "src": "5959:87:2", "text": "@notice Unpause all the functions\n @dev the caller must have the 'PAUSER_ROLE'" }, "functionSelector": "3f4ba83a", - "id": 1074, + "id": 1105, "implemented": true, "kind": "function", "modifiers": [], @@ -11731,41 +12589,45 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1059, + "id": 1090, "nodeType": "ParameterList", "parameters": [], - "src": "6144:2:2" + "src": "6065:2:2" }, "returnParameters": { - "id": 1060, + "id": 1091, "nodeType": "ParameterList", "parameters": [], - "src": "6156:0:2" + "src": "6077:0:2" }, - "scope": 1075, - "src": "6128:155:2", + "scope": 1106, + "src": "6049:155:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 1076, - "src": "1381:4905:2" + "scope": 1107, + "src": "1381:4826:2" } ], - "src": "37:6250:2" + "src": "37:6171:2" }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:05.893Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.587Z", "devdoc": { - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/ERC165.json b/abi/ERC165.json index 2343995..fc0c771 100644 --- a/abi/ERC165.json +++ b/abi/ERC165.json @@ -21,7 +21,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts may inherit from this and call {_registerInterface} to declare their support of an interface.\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas.\"}},\"stateVariables\":{\"_supportedInterfaces\":{\"details\":\"Mapping of interface ids to whether or not it's supported.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0xb046d18f9d09683ca1c0ed6d80c61da8a8a7d9b30bad70a17b898538683eff74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4728713afa6ae36cc9e92c7107c796a313add3ec20f813be2cde76c814486b2a\",\"dweb:/ipfs/QmUJBTXvYaGDF5PVnd5pUvYerc9DRXvqANDzgCzAp3FkkA\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xfa152b6e88a1dc50780e8f1580426dc23ad2e1e2c2f086a088adf206a202f453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5127b264994adab88fae419b1c493efc5acd07134c19ee5c0397e50018291ebf\",\"dweb:/ipfs/QmWwJZVhvdmvUCdimbb6R2Jiu59zjPqm6XTMchM6LaEHAp\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts may inherit from this and call {_registerInterface} to declare their support of an interface.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas.\"}},\"stateVariables\":{\"_supportedInterfaces\":{\"details\":\"Mapping of interface ids to whether or not it's supported.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0xb046d18f9d09683ca1c0ed6d80c61da8a8a7d9b30bad70a17b898538683eff74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4728713afa6ae36cc9e92c7107c796a313add3ec20f813be2cde76c814486b2a\",\"dweb:/ipfs/QmUJBTXvYaGDF5PVnd5pUvYerc9DRXvqANDzgCzAp3FkkA\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xfa152b6e88a1dc50780e8f1580426dc23ad2e1e2c2f086a088adf206a202f453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5127b264994adab88fae419b1c493efc5acd07134c19ee5c0397e50018291ebf\",\"dweb:/ipfs/QmWwJZVhvdmvUCdimbb6R2Jiu59zjPqm6XTMchM6LaEHAp\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, @@ -33,15 +33,15 @@ "absolutePath": "@openzeppelin/contracts/introspection/ERC165.sol", "exportedSymbols": { "ERC165": [ - 1655 + 1686 ] }, - "id": 1656, + "id": 1687, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1600, + "id": 1631, "literals": [ "solidity", "^", @@ -54,10 +54,10 @@ { "absolutePath": "@openzeppelin/contracts/introspection/IERC165.sol", "file": "./IERC165.sol", - "id": 1601, + "id": 1632, "nodeType": "ImportDirective", - "scope": 1656, - "sourceUnit": 1668, + "scope": 1687, + "sourceUnit": 1699, "src": "58:23:8", "symbolAliases": [], "unitAlias": "" @@ -69,48 +69,48 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1603, + "id": 1634, "name": "IERC165", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1667, + "referencedDeclaration": 1698, "src": "274:7:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$1667", + "typeIdentifier": "t_contract$_IERC165_$1698", "typeString": "contract IERC165" } }, - "id": 1604, + "id": 1635, "nodeType": "InheritanceSpecifier", "src": "274:7:8" } ], "contractDependencies": [ - 1667 + 1698 ], "contractKind": "contract", "documentation": { - "id": 1602, + "id": 1633, "nodeType": "StructuredDocumentation", "src": "83:171:8", "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." }, "fullyImplemented": true, - "id": 1655, + "id": 1686, "linearizedBaseContracts": [ - 1655, - 1667 + 1686, + 1698 ], "name": "ERC165", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 1607, + "id": 1638, "mutability": "constant", "name": "_INTERFACE_ID_ERC165", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1655, + "scope": 1686, "src": "371:57:8", "stateVariable": true, "storageLocation": "default", @@ -119,7 +119,7 @@ "typeString": "bytes4" }, "typeName": { - "id": 1605, + "id": 1636, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "371:6:8", @@ -131,7 +131,7 @@ "value": { "argumentTypes": null, "hexValue": "30783031666663396137", - "id": 1606, + "id": 1637, "isConstant": false, "isLValue": false, "isPure": true, @@ -151,17 +151,17 @@ { "constant": false, "documentation": { - "id": 1608, + "id": 1639, "nodeType": "StructuredDocumentation", "src": "435:82:8", "text": " @dev Mapping of interface ids to whether or not it's supported." }, - "id": 1612, + "id": 1643, "mutability": "mutable", "name": "_supportedInterfaces", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1655, + "scope": 1686, "src": "522:52:8", "stateVariable": true, "storageLocation": "default", @@ -170,9 +170,9 @@ "typeString": "mapping(bytes4 => bool)" }, "typeName": { - "id": 1611, + "id": 1642, "keyType": { - "id": 1609, + "id": 1640, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "530:6:8", @@ -188,7 +188,7 @@ "typeString": "mapping(bytes4 => bool)" }, "valueType": { - "id": 1610, + "id": 1641, "name": "bool", "nodeType": "ElementaryTypeName", "src": "540:4:8", @@ -203,7 +203,7 @@ }, { "body": { - "id": 1619, + "id": 1650, "nodeType": "Block", "src": "605:193:8", "statements": [ @@ -213,11 +213,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1616, + "id": 1647, "name": "_INTERFACE_ID_ERC165", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1607, + "referencedDeclaration": 1638, "src": "770:20:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", @@ -232,18 +232,18 @@ "typeString": "bytes4" } ], - "id": 1615, + "id": 1646, "name": "_registerInterface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1654, + "referencedDeclaration": 1685, "src": "751:18:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, - "id": 1617, + "id": 1648, "isConstant": false, "isLValue": false, "isPure": false, @@ -258,14 +258,14 @@ "typeString": "tuple()" } }, - "id": 1618, + "id": 1649, "nodeType": "ExpressionStatement", "src": "751:40:8" } ] }, "documentation": null, - "id": 1620, + "id": 1651, "implemented": true, "kind": "constructor", "modifiers": [], @@ -273,18 +273,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1613, + "id": 1644, "nodeType": "ParameterList", "parameters": [], "src": "593:2:8" }, "returnParameters": { - "id": 1614, + "id": 1645, "nodeType": "ParameterList", "parameters": [], "src": "605:0:8" }, - "scope": 1655, + "scope": 1686, "src": "581:217:8", "stateMutability": "nonpayable", "virtual": false, @@ -292,10 +292,10 @@ }, { "baseFunctions": [ - 1666 + 1697 ], "body": { - "id": 1633, + "id": 1664, "nodeType": "Block", "src": "1031:57:8", "statements": [ @@ -304,25 +304,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1629, + "id": 1660, "name": "_supportedInterfaces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1612, + "referencedDeclaration": 1643, "src": "1048:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", "typeString": "mapping(bytes4 => bool)" } }, - "id": 1631, + "id": 1662, "indexExpression": { "argumentTypes": null, - "id": 1630, + "id": 1661, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1623, + "referencedDeclaration": 1654, "src": "1069:11:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", @@ -340,44 +340,44 @@ "typeString": "bool" } }, - "functionReturnParameters": 1628, - "id": 1632, + "functionReturnParameters": 1659, + "id": 1663, "nodeType": "Return", "src": "1041:40:8" } ] }, "documentation": { - "id": 1621, + "id": 1652, "nodeType": "StructuredDocumentation", "src": "804:139:8", "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." }, "functionSelector": "01ffc9a7", - "id": 1634, + "id": 1665, "implemented": true, "kind": "function", "modifiers": [], "name": "supportsInterface", "nodeType": "FunctionDefinition", "overrides": { - "id": 1625, + "id": 1656, "nodeType": "OverrideSpecifier", "overrides": [], "src": "1007:8:8" }, "parameters": { - "id": 1624, + "id": 1655, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1623, + "id": 1654, "mutability": "mutable", "name": "interfaceId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1634, + "scope": 1665, "src": "975:18:8", "stateVariable": false, "storageLocation": "default", @@ -386,7 +386,7 @@ "typeString": "bytes4" }, "typeName": { - "id": 1622, + "id": 1653, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "975:6:8", @@ -402,17 +402,17 @@ "src": "974:20:8" }, "returnParameters": { - "id": 1628, + "id": 1659, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1627, + "id": 1658, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1634, + "scope": 1665, "src": "1025:4:8", "stateVariable": false, "storageLocation": "default", @@ -421,7 +421,7 @@ "typeString": "bool" }, "typeName": { - "id": 1626, + "id": 1657, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1025:4:8", @@ -436,7 +436,7 @@ ], "src": "1024:6:8" }, - "scope": 1655, + "scope": 1686, "src": "948:140:8", "stateMutability": "view", "virtual": false, @@ -444,7 +444,7 @@ }, { "body": { - "id": 1653, + "id": 1684, "nodeType": "Block", "src": "1547:133:8", "statements": [ @@ -458,18 +458,18 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 1643, + "id": 1674, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1641, + "id": 1672, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1637, + "referencedDeclaration": 1668, "src": "1565:11:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", @@ -481,7 +481,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30786666666666666666", - "id": 1642, + "id": 1673, "isConstant": false, "isLValue": false, "isPure": true, @@ -505,7 +505,7 @@ { "argumentTypes": null, "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 1644, + "id": 1675, "isConstant": false, "isLValue": false, "isPure": true, @@ -532,7 +532,7 @@ "typeString": "literal_string \"ERC165: invalid interface id\"" } ], - "id": 1640, + "id": 1671, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -546,7 +546,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1645, + "id": 1676, "isConstant": false, "isLValue": false, "isPure": false, @@ -561,14 +561,14 @@ "typeString": "tuple()" } }, - "id": 1646, + "id": 1677, "nodeType": "ExpressionStatement", "src": "1557:66:8" }, { "expression": { "argumentTypes": null, - "id": 1651, + "id": 1682, "isConstant": false, "isLValue": false, "isPure": false, @@ -577,25 +577,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1647, + "id": 1678, "name": "_supportedInterfaces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1612, + "referencedDeclaration": 1643, "src": "1633:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", "typeString": "mapping(bytes4 => bool)" } }, - "id": 1649, + "id": 1680, "indexExpression": { "argumentTypes": null, - "id": 1648, + "id": 1679, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1637, + "referencedDeclaration": 1668, "src": "1654:11:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", @@ -618,7 +618,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1650, + "id": 1681, "isConstant": false, "isLValue": false, "isPure": true, @@ -639,19 +639,19 @@ "typeString": "bool" } }, - "id": 1652, + "id": 1683, "nodeType": "ExpressionStatement", "src": "1633:40:8" } ] }, "documentation": { - "id": 1635, + "id": 1666, "nodeType": "StructuredDocumentation", "src": "1094:383:8", "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." }, - "id": 1654, + "id": 1685, "implemented": true, "kind": "function", "modifiers": [], @@ -659,17 +659,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1638, + "id": 1669, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1637, + "id": 1668, "mutability": "mutable", "name": "interfaceId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1654, + "scope": 1685, "src": "1510:18:8", "stateVariable": false, "storageLocation": "default", @@ -678,7 +678,7 @@ "typeString": "bytes4" }, "typeName": { - "id": 1636, + "id": 1667, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "1510:6:8", @@ -694,19 +694,19 @@ "src": "1509:20:8" }, "returnParameters": { - "id": 1639, + "id": 1670, "nodeType": "ParameterList", "parameters": [], "src": "1547:0:8" }, - "scope": 1655, + "scope": 1686, "src": "1482:198:8", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" } ], - "scope": 1656, + "scope": 1687, "src": "255:1427:8" } ], @@ -716,15 +716,15 @@ "absolutePath": "@openzeppelin/contracts/introspection/ERC165.sol", "exportedSymbols": { "ERC165": [ - 1655 + 1686 ] }, - "id": 1656, + "id": 1687, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1600, + "id": 1631, "literals": [ "solidity", "^", @@ -737,10 +737,10 @@ { "absolutePath": "@openzeppelin/contracts/introspection/IERC165.sol", "file": "./IERC165.sol", - "id": 1601, + "id": 1632, "nodeType": "ImportDirective", - "scope": 1656, - "sourceUnit": 1668, + "scope": 1687, + "sourceUnit": 1699, "src": "58:23:8", "symbolAliases": [], "unitAlias": "" @@ -752,48 +752,48 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1603, + "id": 1634, "name": "IERC165", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1667, + "referencedDeclaration": 1698, "src": "274:7:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$1667", + "typeIdentifier": "t_contract$_IERC165_$1698", "typeString": "contract IERC165" } }, - "id": 1604, + "id": 1635, "nodeType": "InheritanceSpecifier", "src": "274:7:8" } ], "contractDependencies": [ - 1667 + 1698 ], "contractKind": "contract", "documentation": { - "id": 1602, + "id": 1633, "nodeType": "StructuredDocumentation", "src": "83:171:8", "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." }, "fullyImplemented": true, - "id": 1655, + "id": 1686, "linearizedBaseContracts": [ - 1655, - 1667 + 1686, + 1698 ], "name": "ERC165", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 1607, + "id": 1638, "mutability": "constant", "name": "_INTERFACE_ID_ERC165", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1655, + "scope": 1686, "src": "371:57:8", "stateVariable": true, "storageLocation": "default", @@ -802,7 +802,7 @@ "typeString": "bytes4" }, "typeName": { - "id": 1605, + "id": 1636, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "371:6:8", @@ -814,7 +814,7 @@ "value": { "argumentTypes": null, "hexValue": "30783031666663396137", - "id": 1606, + "id": 1637, "isConstant": false, "isLValue": false, "isPure": true, @@ -834,17 +834,17 @@ { "constant": false, "documentation": { - "id": 1608, + "id": 1639, "nodeType": "StructuredDocumentation", "src": "435:82:8", "text": " @dev Mapping of interface ids to whether or not it's supported." }, - "id": 1612, + "id": 1643, "mutability": "mutable", "name": "_supportedInterfaces", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1655, + "scope": 1686, "src": "522:52:8", "stateVariable": true, "storageLocation": "default", @@ -853,9 +853,9 @@ "typeString": "mapping(bytes4 => bool)" }, "typeName": { - "id": 1611, + "id": 1642, "keyType": { - "id": 1609, + "id": 1640, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "530:6:8", @@ -871,7 +871,7 @@ "typeString": "mapping(bytes4 => bool)" }, "valueType": { - "id": 1610, + "id": 1641, "name": "bool", "nodeType": "ElementaryTypeName", "src": "540:4:8", @@ -886,7 +886,7 @@ }, { "body": { - "id": 1619, + "id": 1650, "nodeType": "Block", "src": "605:193:8", "statements": [ @@ -896,11 +896,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1616, + "id": 1647, "name": "_INTERFACE_ID_ERC165", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1607, + "referencedDeclaration": 1638, "src": "770:20:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", @@ -915,18 +915,18 @@ "typeString": "bytes4" } ], - "id": 1615, + "id": 1646, "name": "_registerInterface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1654, + "referencedDeclaration": 1685, "src": "751:18:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, - "id": 1617, + "id": 1648, "isConstant": false, "isLValue": false, "isPure": false, @@ -941,14 +941,14 @@ "typeString": "tuple()" } }, - "id": 1618, + "id": 1649, "nodeType": "ExpressionStatement", "src": "751:40:8" } ] }, "documentation": null, - "id": 1620, + "id": 1651, "implemented": true, "kind": "constructor", "modifiers": [], @@ -956,18 +956,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1613, + "id": 1644, "nodeType": "ParameterList", "parameters": [], "src": "593:2:8" }, "returnParameters": { - "id": 1614, + "id": 1645, "nodeType": "ParameterList", "parameters": [], "src": "605:0:8" }, - "scope": 1655, + "scope": 1686, "src": "581:217:8", "stateMutability": "nonpayable", "virtual": false, @@ -975,10 +975,10 @@ }, { "baseFunctions": [ - 1666 + 1697 ], "body": { - "id": 1633, + "id": 1664, "nodeType": "Block", "src": "1031:57:8", "statements": [ @@ -987,25 +987,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1629, + "id": 1660, "name": "_supportedInterfaces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1612, + "referencedDeclaration": 1643, "src": "1048:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", "typeString": "mapping(bytes4 => bool)" } }, - "id": 1631, + "id": 1662, "indexExpression": { "argumentTypes": null, - "id": 1630, + "id": 1661, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1623, + "referencedDeclaration": 1654, "src": "1069:11:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", @@ -1023,44 +1023,44 @@ "typeString": "bool" } }, - "functionReturnParameters": 1628, - "id": 1632, + "functionReturnParameters": 1659, + "id": 1663, "nodeType": "Return", "src": "1041:40:8" } ] }, "documentation": { - "id": 1621, + "id": 1652, "nodeType": "StructuredDocumentation", "src": "804:139:8", "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." }, "functionSelector": "01ffc9a7", - "id": 1634, + "id": 1665, "implemented": true, "kind": "function", "modifiers": [], "name": "supportsInterface", "nodeType": "FunctionDefinition", "overrides": { - "id": 1625, + "id": 1656, "nodeType": "OverrideSpecifier", "overrides": [], "src": "1007:8:8" }, "parameters": { - "id": 1624, + "id": 1655, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1623, + "id": 1654, "mutability": "mutable", "name": "interfaceId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1634, + "scope": 1665, "src": "975:18:8", "stateVariable": false, "storageLocation": "default", @@ -1069,7 +1069,7 @@ "typeString": "bytes4" }, "typeName": { - "id": 1622, + "id": 1653, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "975:6:8", @@ -1085,17 +1085,17 @@ "src": "974:20:8" }, "returnParameters": { - "id": 1628, + "id": 1659, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1627, + "id": 1658, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1634, + "scope": 1665, "src": "1025:4:8", "stateVariable": false, "storageLocation": "default", @@ -1104,7 +1104,7 @@ "typeString": "bool" }, "typeName": { - "id": 1626, + "id": 1657, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1025:4:8", @@ -1119,7 +1119,7 @@ ], "src": "1024:6:8" }, - "scope": 1655, + "scope": 1686, "src": "948:140:8", "stateMutability": "view", "virtual": false, @@ -1127,7 +1127,7 @@ }, { "body": { - "id": 1653, + "id": 1684, "nodeType": "Block", "src": "1547:133:8", "statements": [ @@ -1141,18 +1141,18 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 1643, + "id": 1674, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1641, + "id": 1672, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1637, + "referencedDeclaration": 1668, "src": "1565:11:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", @@ -1164,7 +1164,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30786666666666666666", - "id": 1642, + "id": 1673, "isConstant": false, "isLValue": false, "isPure": true, @@ -1188,7 +1188,7 @@ { "argumentTypes": null, "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 1644, + "id": 1675, "isConstant": false, "isLValue": false, "isPure": true, @@ -1215,7 +1215,7 @@ "typeString": "literal_string \"ERC165: invalid interface id\"" } ], - "id": 1640, + "id": 1671, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1229,7 +1229,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1645, + "id": 1676, "isConstant": false, "isLValue": false, "isPure": false, @@ -1244,14 +1244,14 @@ "typeString": "tuple()" } }, - "id": 1646, + "id": 1677, "nodeType": "ExpressionStatement", "src": "1557:66:8" }, { "expression": { "argumentTypes": null, - "id": 1651, + "id": 1682, "isConstant": false, "isLValue": false, "isPure": false, @@ -1260,25 +1260,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1647, + "id": 1678, "name": "_supportedInterfaces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1612, + "referencedDeclaration": 1643, "src": "1633:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", "typeString": "mapping(bytes4 => bool)" } }, - "id": 1649, + "id": 1680, "indexExpression": { "argumentTypes": null, - "id": 1648, + "id": 1679, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1637, + "referencedDeclaration": 1668, "src": "1654:11:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", @@ -1301,7 +1301,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1650, + "id": 1681, "isConstant": false, "isLValue": false, "isPure": true, @@ -1322,19 +1322,19 @@ "typeString": "bool" } }, - "id": 1652, + "id": 1683, "nodeType": "ExpressionStatement", "src": "1633:40:8" } ] }, "documentation": { - "id": 1635, + "id": 1666, "nodeType": "StructuredDocumentation", "src": "1094:383:8", "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." }, - "id": 1654, + "id": 1685, "implemented": true, "kind": "function", "modifiers": [], @@ -1342,17 +1342,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1638, + "id": 1669, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1637, + "id": 1668, "mutability": "mutable", "name": "interfaceId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1654, + "scope": 1685, "src": "1510:18:8", "stateVariable": false, "storageLocation": "default", @@ -1361,7 +1361,7 @@ "typeString": "bytes4" }, "typeName": { - "id": 1636, + "id": 1667, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "1510:6:8", @@ -1377,19 +1377,19 @@ "src": "1509:20:8" }, "returnParameters": { - "id": 1639, + "id": 1670, "nodeType": "ParameterList", "parameters": [], "src": "1547:0:8" }, - "scope": 1655, + "scope": 1686, "src": "1482:198:8", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" } ], - "scope": 1656, + "scope": 1687, "src": "255:1427:8" } ], @@ -1397,13 +1397,14 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:05.969Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.660Z", "devdoc": { "details": "Implementation of the {IERC165} interface. Contracts may inherit from this and call {_registerInterface} to declare their support of an interface.", + "kind": "dev", "methods": { "supportsInterface(bytes4)": { "details": "See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas." @@ -1413,9 +1414,12 @@ "_supportedInterfaces": { "details": "Mapping of interface ids to whether or not it's supported." } - } + }, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/ERC721.json b/abi/ERC721.json index 2e80e13..89ba61c 100644 --- a/abi/ERC721.json +++ b/abi/ERC721.json @@ -417,9 +417,9 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"see https://eips.ethereum.org/EIPS/eip-721\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"baseURI()\":{\"details\":\"Returns the base URI set via {_setBaseURI}. This will be automatically added as a prefix in {tokenURI} to each token's URI, or to the token ID if no specific URI is set for that token ID.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"title\":\"ERC721 Non-Fungible Token Standard basic implementation\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0xb046d18f9d09683ca1c0ed6d80c61da8a8a7d9b30bad70a17b898538683eff74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4728713afa6ae36cc9e92c7107c796a313add3ec20f813be2cde76c814486b2a\",\"dweb:/ipfs/QmUJBTXvYaGDF5PVnd5pUvYerc9DRXvqANDzgCzAp3FkkA\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xfa152b6e88a1dc50780e8f1580426dc23ad2e1e2c2f086a088adf206a202f453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5127b264994adab88fae419b1c493efc5acd07134c19ee5c0397e50018291ebf\",\"dweb:/ipfs/QmWwJZVhvdmvUCdimbb6R2Jiu59zjPqm6XTMchM6LaEHAp\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x1071a23188ba7f5bb16f51b0b01a67fd41fe56f862d8f83985788cf46f3b91bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c7082ca99b93f2e541cafaad00ed32675adf0752eab78eccabcf91dec9fd5d73\",\"dweb:/ipfs/QmdqooMmYBQVi7p6subDFM4e1944AuLjZUpHMjGtae7Lgd\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x227bafd3e165b13f5d98c42a44376e48d41f4a265db8803f2707faaeae9659aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9aa7959a30871669ce46172cd117b084b607d602d9ce695ce79005582b0b69b\",\"dweb:/ipfs/QmXZUWeLXmArQinHL4RnacJLT22GvCExqREYM6pHLX7CX9\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\":{\"keccak256\":\"0x3636662804cd8f474536b2875a9038a4c3fb91879f1bbff48af5c3f140fcd2f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9fab8521263fa581544000cb57335a3f2e6bcdfbb5579d3ceaa5acf741c67c4f\",\"dweb:/ipfs/QmZfXnMom7JSNtfyie5yGPN1SUC4SmHbz4ScVBH88URmA7\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0xe7f984cedc00a138dc27f263c73c32ba9a4b2fd23b6c34ac46f46c074b943538\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f4acda12f076fe7584921241ddbb5b460ca7cad6cb8a42252ac7f2a9f539127\",\"dweb:/ipfs/QmQmfhkEv9GrhdWe67QtXnU19AMuoEmy31QnHPkucdYLjZ\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x321ee37ef4925020aa818a03ec7fe48e057561f65ab009a84f6c20c86026ade7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01f9d74a17a56024984251b97e428e24c9d3abffbae5bd290f0ec263c82e9694\",\"dweb:/ipfs/QmRryCuuXu2ukrDmatB8TqdEhPLiK6NBRt41RiPUaX1qKy\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"@openzeppelin/contracts/utils/EnumerableMap.sol\":{\"keccak256\":\"0x244e4b74b17716120cf28e58636f11c699b8c0c94628bd952a95cee038d7e32b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://198d566157120c526bd6b5086b32cae85a11389b8a538f533ba9f9447915da0e\",\"dweb:/ipfs/QmeE6d8KWERx7f1FVS5tMnitNJxBm2yWXRSEUBF7R6voLh\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x79484115dbfa737054f73e041009a02eeb434dd81be5d684bf4255ad3b5ab558\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12c119699463450c2544f5b9d8709b5e9e9164c62948a79c3ec53423a051d969\",\"dweb:/ipfs/QmPJduzSAaekq447QeFqAp3E7dc8CnNk5ajofckJ4ahA7Q\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b5060405162002b5838038062002b58833981810160405260408110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b838201915060208201858111156200006f57600080fd5b82518660018202830111640100000000821117156200008d57600080fd5b8083526020830192505050908051906020019080838360005b83811015620000c3578082015181840152602081019050620000a6565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011557600080fd5b838201915060208201858111156200012c57600080fd5b82518660018202830111640100000000821117156200014a57600080fd5b8083526020830192505050908051906020019080838360005b838110156200018057808201518184015260208101905062000163565b50505050905090810190601f168015620001ae5780820380516001836020036101000a031916815260200191505b50604052505050620001cd6301ffc9a760e01b6200024f60201b60201c565b8160069080519060200190620001e592919062000358565b508060079080519060200190620001fe92919062000358565b50620002176380ac58cd60e01b6200024f60201b60201c565b6200022f635b5e139f60e01b6200024f60201b60201c565b6200024763780e9d6360e01b6200024f60201b60201c565b505062000407565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415620002ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200039b57805160ff1916838001178555620003cc565b82800160010185558215620003cc579182015b82811115620003cb578251825591602001919060010190620003ae565b5b509050620003db9190620003df565b5090565b6200040491905b8082111562000400576000816000905550600101620003e6565b5090565b90565b61274180620004176000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80634f6ccce7116100a257806395d89b411161007157806395d89b411461059b578063a22cb4651461061e578063b88d4fde1461066e578063c87b56dd14610773578063e985e9c51461081a5761010b565b80634f6ccce7146104105780636352211e146104525780636c0360eb146104c057806370a08231146105435761010b565b806318160ddd116100de57806318160ddd146102b457806323b872dd146102d25780632f745c591461034057806342842e0e146103a25761010b565b806301ffc9a71461011057806306fdde0314610175578063081812fc146101f8578063095ea7b314610266575b600080fd5b61015b6004803603602081101561012657600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610896565b604051808215151515815260200191505060405180910390f35b61017d6108fd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101bd5780820151818401526020810190506101a2565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102246004803603602081101561020e57600080fd5b810190808035906020019092919050505061099f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102b26004803603604081101561027c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a3a565b005b6102bc610b7e565b6040518082815260200191505060405180910390f35b61033e600480360360608110156102e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b8f565b005b61038c6004803603604081101561035657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c05565b6040518082815260200191505060405180910390f35b61040e600480360360608110156103b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c60565b005b61043c6004803603602081101561042657600080fd5b8101908080359060200190929190505050610c80565b6040518082815260200191505060405180910390f35b61047e6004803603602081101561046857600080fd5b8101908080359060200190929190505050610ca3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104c8610cda565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105085780820151818401526020810190506104ed565b50505050905090810190601f1680156105355780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105856004803603602081101561055957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d7c565b6040518082815260200191505060405180910390f35b6105a3610e51565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105e35780820151818401526020810190506105c8565b50505050905090810190601f1680156106105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61066c6004803603604081101561063457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610ef3565b005b6107716004803603608081101561068457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156106eb57600080fd5b8201836020820111156106fd57600080fd5b8035906020019184600183028401116401000000008311171561071f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506110ab565b005b61079f6004803603602081101561078957600080fd5b8101908080359060200190929190505050611123565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107df5780820151818401526020810190506107c4565b50505050905090810190601f16801561080c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61087c6004803603604081101561083057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061140c565b604051808215151515815260200191505060405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109955780601f1061096a57610100808354040283529160200191610995565b820191906000526020600020905b81548152906001019060200180831161097857829003601f168201915b5050505050905090565b60006109aa826114a0565b6109ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612636602c913960400191505060405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a4582610ca3565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610acc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126ba6021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610aeb6114bd565b73ffffffffffffffffffffffffffffffffffffffff161480610b1a5750610b1981610b146114bd565b61140c565b5b610b6f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806125896038913960400191505060405180910390fd5b610b7983836114c5565b505050565b6000610b8a600261157e565b905090565b610ba0610b9a6114bd565b82611593565b610bf5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806126db6031913960400191505060405180910390fd5b610c00838383611687565b505050565b6000610c5882600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206118ca90919063ffffffff16565b905092915050565b610c7b838383604051806020016040528060008152506110ab565b505050565b600080610c978360026118e490919063ffffffff16565b50905080915050919050565b6000610cd3826040518060600160405280602981526020016125eb6029913960026119139092919063ffffffff16565b9050919050565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d725780601f10610d4757610100808354040283529160200191610d72565b820191906000526020600020905b815481529060010190602001808311610d5557829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806125c1602a913960400191505060405180910390fd5b610e4a600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611932565b9050919050565b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ee95780601f10610ebe57610100808354040283529160200191610ee9565b820191906000526020600020905b815481529060010190602001808311610ecc57829003601f168201915b5050505050905090565b610efb6114bd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f9c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b8060056000610fa96114bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166110566114bd565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b6110bc6110b66114bd565b83611593565b611111576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806126db6031913960400191505060405180910390fd5b61111d84848484611947565b50505050565b606061112e826114a0565b611183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061268b602f913960400191505060405180910390fd5b6060600860008481526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561122c5780601f106112015761010080835404028352916020019161122c565b820191906000526020600020905b81548152906001019060200180831161120f57829003601f168201915b5050505050905060006009805460018160011615610100020316600290049050141561125b5780915050611407565b6000815111156113345760098160405160200180838054600181600116156101000203166002900480156112c65780601f106112a45761010080835404028352918201916112c6565b820191906000526020600020905b8154815290600101906020018083116112b2575b505082805190602001908083835b602083106112f757805182526020820191506020810190506020830392506112d4565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052915050611407565b600961133f846119b9565b604051602001808380546001816001161561010002031660029004801561139d5780601f1061137b57610100808354040283529182019161139d565b820191906000526020600020905b815481529060010190602001808311611389575b505082805190602001908083835b602083106113ce57805182526020820191506020810190506020830392506113ab565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529150505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60006114b6826002611b0090919063ffffffff16565b9050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661153883610ca3565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061158c82600001611b1a565b9050919050565b600061159e826114a0565b6115f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061255d602c913960400191505060405180910390fd5b60006115fe83610ca3565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061166d57508373ffffffffffffffffffffffffffffffffffffffff166116558461099f565b73ffffffffffffffffffffffffffffffffffffffff16145b8061167e575061167d818561140c565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166116a782610ca3565b73ffffffffffffffffffffffffffffffffffffffff1614611713576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806126626029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611799576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806125396024913960400191505060405180910390fd5b6117a4838383611b2b565b6117af6000826114c5565b61180081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611b3090919063ffffffff16565b5061185281600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611b4a90919063ffffffff16565b5061186981836002611b649092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006118d98360000183611b99565b60001c905092915050565b6000806000806118f78660000186611c1c565b915091508160001c8160001c8090509350935050509250929050565b6000611926846000018460001b84611cb5565b60001c90509392505050565b600061194082600001611dab565b9050919050565b611952848484611687565b61195e84848484611dbc565b6119b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806125076032913960400191505060405180910390fd5b50505050565b60606000821415611a01576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611afb565b600082905060005b60008214611a2b578080600101915050600a8281611a2357fe5b049150611a09565b60608167ffffffffffffffff81118015611a4457600080fd5b506040519080825280601f01601f191660200182016040528015611a775781602001600182028036833780820191505090505b50905060006001830390508593505b60008414611af357600a8481611a9857fe5b0660300160f81b82828060019003935081518110611ab257fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8481611aeb57fe5b049350611a86565b819450505050505b919050565b6000611b12836000018360001b612001565b905092915050565b600081600001805490509050919050565b505050565b6000611b42836000018360001b612024565b905092915050565b6000611b5c836000018360001b61210c565b905092915050565b6000611b90846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b61217c565b90509392505050565b600081836000018054905011611bfa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806124e56022913960400191505060405180910390fd5b826000018281548110611c0957fe5b9060005260206000200154905092915050565b60008082846000018054905011611c7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806126146022913960400191505060405180910390fd5b6000846000018481548110611c8f57fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b60008084600101600085815260200190815260200160002054905060008114158390611d7c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d41578082015181840152602081019050611d26565b50505050905090810190601f168015611d6e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50846000016001820381548110611d8f57fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b6000611ddd8473ffffffffffffffffffffffffffffffffffffffff16612258565b611dea5760019050611ff9565b6060611f8063150b7a0260e01b611dff6114bd565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611eaf578082015181840152602081019050611e94565b50505050905090810190601f168015611edc5780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051806060016040528060328152602001612507603291398773ffffffffffffffffffffffffffffffffffffffff166122a39092919063ffffffff16565b90506000818060200190516020811015611f9957600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b600080836001016000848152602001908152602001600020541415905092915050565b60008083600101600084815260200190815260200160002054905060008114612100576000600182039050600060018660000180549050039050600086600001828154811061206f57fe5b906000526020600020015490508087600001848154811061208c57fe5b90600052602060002001819055506001830187600101600083815260200190815260200160002081905550866000018054806120c457fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050612106565b60009150505b92915050565b600061211883836122bb565b612171578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612176565b600090505b92915050565b600080846001016000858152602001908152602001600020549050600081141561222357846000016040518060400160405280868152602001858152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508460000180549050856001016000868152602001908152602001600020819055506001915050612251565b8285600001600183038154811061223657fe5b90600052602060002090600202016001018190555060009150505b9392505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561229a57506000801b8214155b92505050919050565b60606122b284846000856122de565b90509392505050565b600080836001016000848152602001908152602001600020541415905092915050565b60606122e985612258565b61235b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106123ab5780518252602082019150602081019050602083039250612388565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461240d576040519150601f19603f3d011682016040523d82523d6000602084013e612412565b606091505b509150915081156124275780925050506124dc565b60008151111561243a5780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124a1578082015181840152602081019050612486565b50505050905090810190601f1680156124ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b94935050505056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a264697066735822122046963b01733fe42c64678982ec5fc28317e45560a9997515c8ac2d7ee493afb164736f6c634300060a0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80634f6ccce7116100a257806395d89b411161007157806395d89b411461059b578063a22cb4651461061e578063b88d4fde1461066e578063c87b56dd14610773578063e985e9c51461081a5761010b565b80634f6ccce7146104105780636352211e146104525780636c0360eb146104c057806370a08231146105435761010b565b806318160ddd116100de57806318160ddd146102b457806323b872dd146102d25780632f745c591461034057806342842e0e146103a25761010b565b806301ffc9a71461011057806306fdde0314610175578063081812fc146101f8578063095ea7b314610266575b600080fd5b61015b6004803603602081101561012657600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610896565b604051808215151515815260200191505060405180910390f35b61017d6108fd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101bd5780820151818401526020810190506101a2565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102246004803603602081101561020e57600080fd5b810190808035906020019092919050505061099f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102b26004803603604081101561027c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a3a565b005b6102bc610b7e565b6040518082815260200191505060405180910390f35b61033e600480360360608110156102e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b8f565b005b61038c6004803603604081101561035657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c05565b6040518082815260200191505060405180910390f35b61040e600480360360608110156103b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c60565b005b61043c6004803603602081101561042657600080fd5b8101908080359060200190929190505050610c80565b6040518082815260200191505060405180910390f35b61047e6004803603602081101561046857600080fd5b8101908080359060200190929190505050610ca3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104c8610cda565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105085780820151818401526020810190506104ed565b50505050905090810190601f1680156105355780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105856004803603602081101561055957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d7c565b6040518082815260200191505060405180910390f35b6105a3610e51565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105e35780820151818401526020810190506105c8565b50505050905090810190601f1680156106105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61066c6004803603604081101561063457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610ef3565b005b6107716004803603608081101561068457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156106eb57600080fd5b8201836020820111156106fd57600080fd5b8035906020019184600183028401116401000000008311171561071f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506110ab565b005b61079f6004803603602081101561078957600080fd5b8101908080359060200190929190505050611123565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107df5780820151818401526020810190506107c4565b50505050905090810190601f16801561080c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61087c6004803603604081101561083057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061140c565b604051808215151515815260200191505060405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109955780601f1061096a57610100808354040283529160200191610995565b820191906000526020600020905b81548152906001019060200180831161097857829003601f168201915b5050505050905090565b60006109aa826114a0565b6109ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612636602c913960400191505060405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a4582610ca3565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610acc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126ba6021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610aeb6114bd565b73ffffffffffffffffffffffffffffffffffffffff161480610b1a5750610b1981610b146114bd565b61140c565b5b610b6f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806125896038913960400191505060405180910390fd5b610b7983836114c5565b505050565b6000610b8a600261157e565b905090565b610ba0610b9a6114bd565b82611593565b610bf5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806126db6031913960400191505060405180910390fd5b610c00838383611687565b505050565b6000610c5882600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206118ca90919063ffffffff16565b905092915050565b610c7b838383604051806020016040528060008152506110ab565b505050565b600080610c978360026118e490919063ffffffff16565b50905080915050919050565b6000610cd3826040518060600160405280602981526020016125eb6029913960026119139092919063ffffffff16565b9050919050565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d725780601f10610d4757610100808354040283529160200191610d72565b820191906000526020600020905b815481529060010190602001808311610d5557829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806125c1602a913960400191505060405180910390fd5b610e4a600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611932565b9050919050565b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ee95780601f10610ebe57610100808354040283529160200191610ee9565b820191906000526020600020905b815481529060010190602001808311610ecc57829003601f168201915b5050505050905090565b610efb6114bd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f9c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b8060056000610fa96114bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166110566114bd565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b6110bc6110b66114bd565b83611593565b611111576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806126db6031913960400191505060405180910390fd5b61111d84848484611947565b50505050565b606061112e826114a0565b611183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061268b602f913960400191505060405180910390fd5b6060600860008481526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561122c5780601f106112015761010080835404028352916020019161122c565b820191906000526020600020905b81548152906001019060200180831161120f57829003601f168201915b5050505050905060006009805460018160011615610100020316600290049050141561125b5780915050611407565b6000815111156113345760098160405160200180838054600181600116156101000203166002900480156112c65780601f106112a45761010080835404028352918201916112c6565b820191906000526020600020905b8154815290600101906020018083116112b2575b505082805190602001908083835b602083106112f757805182526020820191506020810190506020830392506112d4565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052915050611407565b600961133f846119b9565b604051602001808380546001816001161561010002031660029004801561139d5780601f1061137b57610100808354040283529182019161139d565b820191906000526020600020905b815481529060010190602001808311611389575b505082805190602001908083835b602083106113ce57805182526020820191506020810190506020830392506113ab565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529150505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60006114b6826002611b0090919063ffffffff16565b9050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661153883610ca3565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061158c82600001611b1a565b9050919050565b600061159e826114a0565b6115f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061255d602c913960400191505060405180910390fd5b60006115fe83610ca3565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061166d57508373ffffffffffffffffffffffffffffffffffffffff166116558461099f565b73ffffffffffffffffffffffffffffffffffffffff16145b8061167e575061167d818561140c565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166116a782610ca3565b73ffffffffffffffffffffffffffffffffffffffff1614611713576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806126626029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611799576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806125396024913960400191505060405180910390fd5b6117a4838383611b2b565b6117af6000826114c5565b61180081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611b3090919063ffffffff16565b5061185281600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611b4a90919063ffffffff16565b5061186981836002611b649092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006118d98360000183611b99565b60001c905092915050565b6000806000806118f78660000186611c1c565b915091508160001c8160001c8090509350935050509250929050565b6000611926846000018460001b84611cb5565b60001c90509392505050565b600061194082600001611dab565b9050919050565b611952848484611687565b61195e84848484611dbc565b6119b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806125076032913960400191505060405180910390fd5b50505050565b60606000821415611a01576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611afb565b600082905060005b60008214611a2b578080600101915050600a8281611a2357fe5b049150611a09565b60608167ffffffffffffffff81118015611a4457600080fd5b506040519080825280601f01601f191660200182016040528015611a775781602001600182028036833780820191505090505b50905060006001830390508593505b60008414611af357600a8481611a9857fe5b0660300160f81b82828060019003935081518110611ab257fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8481611aeb57fe5b049350611a86565b819450505050505b919050565b6000611b12836000018360001b612001565b905092915050565b600081600001805490509050919050565b505050565b6000611b42836000018360001b612024565b905092915050565b6000611b5c836000018360001b61210c565b905092915050565b6000611b90846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b61217c565b90509392505050565b600081836000018054905011611bfa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806124e56022913960400191505060405180910390fd5b826000018281548110611c0957fe5b9060005260206000200154905092915050565b60008082846000018054905011611c7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806126146022913960400191505060405180910390fd5b6000846000018481548110611c8f57fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b60008084600101600085815260200190815260200160002054905060008114158390611d7c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d41578082015181840152602081019050611d26565b50505050905090810190601f168015611d6e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50846000016001820381548110611d8f57fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b6000611ddd8473ffffffffffffffffffffffffffffffffffffffff16612258565b611dea5760019050611ff9565b6060611f8063150b7a0260e01b611dff6114bd565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611eaf578082015181840152602081019050611e94565b50505050905090810190601f168015611edc5780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051806060016040528060328152602001612507603291398773ffffffffffffffffffffffffffffffffffffffff166122a39092919063ffffffff16565b90506000818060200190516020811015611f9957600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b600080836001016000848152602001908152602001600020541415905092915050565b60008083600101600084815260200190815260200160002054905060008114612100576000600182039050600060018660000180549050039050600086600001828154811061206f57fe5b906000526020600020015490508087600001848154811061208c57fe5b90600052602060002001819055506001830187600101600083815260200190815260200160002081905550866000018054806120c457fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050612106565b60009150505b92915050565b600061211883836122bb565b612171578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612176565b600090505b92915050565b600080846001016000858152602001908152602001600020549050600081141561222357846000016040518060400160405280868152602001858152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508460000180549050856001016000868152602001908152602001600020819055506001915050612251565b8285600001600183038154811061223657fe5b90600052602060002090600202016001018190555060009150505b9392505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561229a57506000801b8214155b92505050919050565b60606122b284846000856122de565b90509392505050565b600080836001016000848152602001908152602001600020541415905092915050565b60606122e985612258565b61235b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106123ab5780518252602082019150602081019050602083039250612388565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461240d576040519150601f19603f3d011682016040523d82523d6000602084013e612412565b606091505b509150915081156124275780925050506124dc565b60008151111561243a5780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124a1578082015181840152602081019050612486565b50505050905090810190601f1680156124ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b94935050505056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a264697066735822122046963b01733fe42c64678982ec5fc28317e45560a9997515c8ac2d7ee493afb164736f6c634300060a0033", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"see https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"baseURI()\":{\"details\":\"Returns the base URI set via {_setBaseURI}. This will be automatically added as a prefix in {tokenURI} to each token's URI, or to the token ID if no specific URI is set for that token ID.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"title\":\"ERC721 Non-Fungible Token Standard basic implementation\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0xb046d18f9d09683ca1c0ed6d80c61da8a8a7d9b30bad70a17b898538683eff74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4728713afa6ae36cc9e92c7107c796a313add3ec20f813be2cde76c814486b2a\",\"dweb:/ipfs/QmUJBTXvYaGDF5PVnd5pUvYerc9DRXvqANDzgCzAp3FkkA\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xfa152b6e88a1dc50780e8f1580426dc23ad2e1e2c2f086a088adf206a202f453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5127b264994adab88fae419b1c493efc5acd07134c19ee5c0397e50018291ebf\",\"dweb:/ipfs/QmWwJZVhvdmvUCdimbb6R2Jiu59zjPqm6XTMchM6LaEHAp\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x1071a23188ba7f5bb16f51b0b01a67fd41fe56f862d8f83985788cf46f3b91bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c7082ca99b93f2e541cafaad00ed32675adf0752eab78eccabcf91dec9fd5d73\",\"dweb:/ipfs/QmdqooMmYBQVi7p6subDFM4e1944AuLjZUpHMjGtae7Lgd\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x227bafd3e165b13f5d98c42a44376e48d41f4a265db8803f2707faaeae9659aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9aa7959a30871669ce46172cd117b084b607d602d9ce695ce79005582b0b69b\",\"dweb:/ipfs/QmXZUWeLXmArQinHL4RnacJLT22GvCExqREYM6pHLX7CX9\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\":{\"keccak256\":\"0x3636662804cd8f474536b2875a9038a4c3fb91879f1bbff48af5c3f140fcd2f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9fab8521263fa581544000cb57335a3f2e6bcdfbb5579d3ceaa5acf741c67c4f\",\"dweb:/ipfs/QmZfXnMom7JSNtfyie5yGPN1SUC4SmHbz4ScVBH88URmA7\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0xe7f984cedc00a138dc27f263c73c32ba9a4b2fd23b6c34ac46f46c074b943538\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f4acda12f076fe7584921241ddbb5b460ca7cad6cb8a42252ac7f2a9f539127\",\"dweb:/ipfs/QmQmfhkEv9GrhdWe67QtXnU19AMuoEmy31QnHPkucdYLjZ\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x321ee37ef4925020aa818a03ec7fe48e057561f65ab009a84f6c20c86026ade7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01f9d74a17a56024984251b97e428e24c9d3abffbae5bd290f0ec263c82e9694\",\"dweb:/ipfs/QmRryCuuXu2ukrDmatB8TqdEhPLiK6NBRt41RiPUaX1qKy\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"@openzeppelin/contracts/utils/EnumerableMap.sol\":{\"keccak256\":\"0x244e4b74b17716120cf28e58636f11c699b8c0c94628bd952a95cee038d7e32b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://198d566157120c526bd6b5086b32cae85a11389b8a538f533ba9f9447915da0e\",\"dweb:/ipfs/QmeE6d8KWERx7f1FVS5tMnitNJxBm2yWXRSEUBF7R6voLh\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x79484115dbfa737054f73e041009a02eeb434dd81be5d684bf4255ad3b5ab558\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12c119699463450c2544f5b9d8709b5e9e9164c62948a79c3ec53423a051d969\",\"dweb:/ipfs/QmPJduzSAaekq447QeFqAp3E7dc8CnNk5ajofckJ4ahA7Q\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b5060405162002b5838038062002b58833981810160405260408110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b838201915060208201858111156200006f57600080fd5b82518660018202830111640100000000821117156200008d57600080fd5b8083526020830192505050908051906020019080838360005b83811015620000c3578082015181840152602081019050620000a6565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011557600080fd5b838201915060208201858111156200012c57600080fd5b82518660018202830111640100000000821117156200014a57600080fd5b8083526020830192505050908051906020019080838360005b838110156200018057808201518184015260208101905062000163565b50505050905090810190601f168015620001ae5780820380516001836020036101000a031916815260200191505b50604052505050620001cd6301ffc9a760e01b6200024f60201b60201c565b8160069080519060200190620001e592919062000358565b508060079080519060200190620001fe92919062000358565b50620002176380ac58cd60e01b6200024f60201b60201c565b6200022f635b5e139f60e01b6200024f60201b60201c565b6200024763780e9d6360e01b6200024f60201b60201c565b505062000407565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415620002ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200039b57805160ff1916838001178555620003cc565b82800160010185558215620003cc579182015b82811115620003cb578251825591602001919060010190620003ae565b5b509050620003db9190620003df565b5090565b6200040491905b8082111562000400576000816000905550600101620003e6565b5090565b90565b61274180620004176000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80634f6ccce7116100a257806395d89b411161007157806395d89b411461059b578063a22cb4651461061e578063b88d4fde1461066e578063c87b56dd14610773578063e985e9c51461081a5761010b565b80634f6ccce7146104105780636352211e146104525780636c0360eb146104c057806370a08231146105435761010b565b806318160ddd116100de57806318160ddd146102b457806323b872dd146102d25780632f745c591461034057806342842e0e146103a25761010b565b806301ffc9a71461011057806306fdde0314610175578063081812fc146101f8578063095ea7b314610266575b600080fd5b61015b6004803603602081101561012657600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610896565b604051808215151515815260200191505060405180910390f35b61017d6108fd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101bd5780820151818401526020810190506101a2565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102246004803603602081101561020e57600080fd5b810190808035906020019092919050505061099f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102b26004803603604081101561027c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a3a565b005b6102bc610b7e565b6040518082815260200191505060405180910390f35b61033e600480360360608110156102e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b8f565b005b61038c6004803603604081101561035657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c05565b6040518082815260200191505060405180910390f35b61040e600480360360608110156103b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c60565b005b61043c6004803603602081101561042657600080fd5b8101908080359060200190929190505050610c80565b6040518082815260200191505060405180910390f35b61047e6004803603602081101561046857600080fd5b8101908080359060200190929190505050610ca3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104c8610cda565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105085780820151818401526020810190506104ed565b50505050905090810190601f1680156105355780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105856004803603602081101561055957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d7c565b6040518082815260200191505060405180910390f35b6105a3610e51565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105e35780820151818401526020810190506105c8565b50505050905090810190601f1680156106105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61066c6004803603604081101561063457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610ef3565b005b6107716004803603608081101561068457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156106eb57600080fd5b8201836020820111156106fd57600080fd5b8035906020019184600183028401116401000000008311171561071f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506110ab565b005b61079f6004803603602081101561078957600080fd5b8101908080359060200190929190505050611123565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107df5780820151818401526020810190506107c4565b50505050905090810190601f16801561080c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61087c6004803603604081101561083057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061140c565b604051808215151515815260200191505060405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109955780601f1061096a57610100808354040283529160200191610995565b820191906000526020600020905b81548152906001019060200180831161097857829003601f168201915b5050505050905090565b60006109aa826114a0565b6109ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612636602c913960400191505060405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a4582610ca3565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610acc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126ba6021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610aeb6114bd565b73ffffffffffffffffffffffffffffffffffffffff161480610b1a5750610b1981610b146114bd565b61140c565b5b610b6f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806125896038913960400191505060405180910390fd5b610b7983836114c5565b505050565b6000610b8a600261157e565b905090565b610ba0610b9a6114bd565b82611593565b610bf5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806126db6031913960400191505060405180910390fd5b610c00838383611687565b505050565b6000610c5882600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206118ca90919063ffffffff16565b905092915050565b610c7b838383604051806020016040528060008152506110ab565b505050565b600080610c978360026118e490919063ffffffff16565b50905080915050919050565b6000610cd3826040518060600160405280602981526020016125eb6029913960026119139092919063ffffffff16565b9050919050565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d725780601f10610d4757610100808354040283529160200191610d72565b820191906000526020600020905b815481529060010190602001808311610d5557829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806125c1602a913960400191505060405180910390fd5b610e4a600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611932565b9050919050565b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ee95780601f10610ebe57610100808354040283529160200191610ee9565b820191906000526020600020905b815481529060010190602001808311610ecc57829003601f168201915b5050505050905090565b610efb6114bd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f9c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b8060056000610fa96114bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166110566114bd565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b6110bc6110b66114bd565b83611593565b611111576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806126db6031913960400191505060405180910390fd5b61111d84848484611947565b50505050565b606061112e826114a0565b611183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061268b602f913960400191505060405180910390fd5b6060600860008481526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561122c5780601f106112015761010080835404028352916020019161122c565b820191906000526020600020905b81548152906001019060200180831161120f57829003601f168201915b5050505050905060006009805460018160011615610100020316600290049050141561125b5780915050611407565b6000815111156113345760098160405160200180838054600181600116156101000203166002900480156112c65780601f106112a45761010080835404028352918201916112c6565b820191906000526020600020905b8154815290600101906020018083116112b2575b505082805190602001908083835b602083106112f757805182526020820191506020810190506020830392506112d4565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052915050611407565b600961133f846119b9565b604051602001808380546001816001161561010002031660029004801561139d5780601f1061137b57610100808354040283529182019161139d565b820191906000526020600020905b815481529060010190602001808311611389575b505082805190602001908083835b602083106113ce57805182526020820191506020810190506020830392506113ab565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529150505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60006114b6826002611b0090919063ffffffff16565b9050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661153883610ca3565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061158c82600001611b1a565b9050919050565b600061159e826114a0565b6115f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061255d602c913960400191505060405180910390fd5b60006115fe83610ca3565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061166d57508373ffffffffffffffffffffffffffffffffffffffff166116558461099f565b73ffffffffffffffffffffffffffffffffffffffff16145b8061167e575061167d818561140c565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166116a782610ca3565b73ffffffffffffffffffffffffffffffffffffffff1614611713576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806126626029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611799576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806125396024913960400191505060405180910390fd5b6117a4838383611b2b565b6117af6000826114c5565b61180081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611b3090919063ffffffff16565b5061185281600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611b4a90919063ffffffff16565b5061186981836002611b649092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006118d98360000183611b99565b60001c905092915050565b6000806000806118f78660000186611c1c565b915091508160001c8160001c8090509350935050509250929050565b6000611926846000018460001b84611cb5565b60001c90509392505050565b600061194082600001611dab565b9050919050565b611952848484611687565b61195e84848484611dbc565b6119b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806125076032913960400191505060405180910390fd5b50505050565b60606000821415611a01576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611afb565b600082905060005b60008214611a2b578080600101915050600a8281611a2357fe5b049150611a09565b60608167ffffffffffffffff81118015611a4457600080fd5b506040519080825280601f01601f191660200182016040528015611a775781602001600182028036833780820191505090505b50905060006001830390508593505b60008414611af357600a8481611a9857fe5b0660300160f81b82828060019003935081518110611ab257fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8481611aeb57fe5b049350611a86565b819450505050505b919050565b6000611b12836000018360001b612001565b905092915050565b600081600001805490509050919050565b505050565b6000611b42836000018360001b612024565b905092915050565b6000611b5c836000018360001b61210c565b905092915050565b6000611b90846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b61217c565b90509392505050565b600081836000018054905011611bfa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806124e56022913960400191505060405180910390fd5b826000018281548110611c0957fe5b9060005260206000200154905092915050565b60008082846000018054905011611c7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806126146022913960400191505060405180910390fd5b6000846000018481548110611c8f57fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b60008084600101600085815260200190815260200160002054905060008114158390611d7c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d41578082015181840152602081019050611d26565b50505050905090810190601f168015611d6e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50846000016001820381548110611d8f57fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b6000611ddd8473ffffffffffffffffffffffffffffffffffffffff16612258565b611dea5760019050611ff9565b6060611f8063150b7a0260e01b611dff6114bd565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611eaf578082015181840152602081019050611e94565b50505050905090810190601f168015611edc5780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051806060016040528060328152602001612507603291398773ffffffffffffffffffffffffffffffffffffffff166122a39092919063ffffffff16565b90506000818060200190516020811015611f9957600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b600080836001016000848152602001908152602001600020541415905092915050565b60008083600101600084815260200190815260200160002054905060008114612100576000600182039050600060018660000180549050039050600086600001828154811061206f57fe5b906000526020600020015490508087600001848154811061208c57fe5b90600052602060002001819055506001830187600101600083815260200190815260200160002081905550866000018054806120c457fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050612106565b60009150505b92915050565b600061211883836122bb565b612171578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612176565b600090505b92915050565b600080846001016000858152602001908152602001600020549050600081141561222357846000016040518060400160405280868152602001858152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508460000180549050856001016000868152602001908152602001600020819055506001915050612251565b8285600001600183038154811061223657fe5b90600052602060002090600202016001018190555060009150505b9392505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561229a57506000801b8214155b92505050919050565b60606122b284846000856122de565b90509392505050565b600080836001016000848152602001908152602001600020541415905092915050565b60606122e985612258565b61235b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106123ab5780518252602082019150602081019050602083039250612388565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461240d576040519150601f19603f3d011682016040523d82523d6000602084013e612412565b606091505b509150915081156124275780925050506124dc565b60008151111561243a5780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124a1578082015181840152602081019050612486565b50505050905090810190601f1680156124ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b94935050505056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a26469706673582212204c4560daceef56fae2306bd2d79114d577938e9288a7277094a5629dcd707e7064736f6c634300060b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80634f6ccce7116100a257806395d89b411161007157806395d89b411461059b578063a22cb4651461061e578063b88d4fde1461066e578063c87b56dd14610773578063e985e9c51461081a5761010b565b80634f6ccce7146104105780636352211e146104525780636c0360eb146104c057806370a08231146105435761010b565b806318160ddd116100de57806318160ddd146102b457806323b872dd146102d25780632f745c591461034057806342842e0e146103a25761010b565b806301ffc9a71461011057806306fdde0314610175578063081812fc146101f8578063095ea7b314610266575b600080fd5b61015b6004803603602081101561012657600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610896565b604051808215151515815260200191505060405180910390f35b61017d6108fd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101bd5780820151818401526020810190506101a2565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102246004803603602081101561020e57600080fd5b810190808035906020019092919050505061099f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102b26004803603604081101561027c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a3a565b005b6102bc610b7e565b6040518082815260200191505060405180910390f35b61033e600480360360608110156102e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b8f565b005b61038c6004803603604081101561035657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c05565b6040518082815260200191505060405180910390f35b61040e600480360360608110156103b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c60565b005b61043c6004803603602081101561042657600080fd5b8101908080359060200190929190505050610c80565b6040518082815260200191505060405180910390f35b61047e6004803603602081101561046857600080fd5b8101908080359060200190929190505050610ca3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104c8610cda565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105085780820151818401526020810190506104ed565b50505050905090810190601f1680156105355780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105856004803603602081101561055957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d7c565b6040518082815260200191505060405180910390f35b6105a3610e51565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105e35780820151818401526020810190506105c8565b50505050905090810190601f1680156106105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61066c6004803603604081101561063457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610ef3565b005b6107716004803603608081101561068457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156106eb57600080fd5b8201836020820111156106fd57600080fd5b8035906020019184600183028401116401000000008311171561071f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506110ab565b005b61079f6004803603602081101561078957600080fd5b8101908080359060200190929190505050611123565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107df5780820151818401526020810190506107c4565b50505050905090810190601f16801561080c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61087c6004803603604081101561083057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061140c565b604051808215151515815260200191505060405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109955780601f1061096a57610100808354040283529160200191610995565b820191906000526020600020905b81548152906001019060200180831161097857829003601f168201915b5050505050905090565b60006109aa826114a0565b6109ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612636602c913960400191505060405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a4582610ca3565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610acc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126ba6021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610aeb6114bd565b73ffffffffffffffffffffffffffffffffffffffff161480610b1a5750610b1981610b146114bd565b61140c565b5b610b6f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806125896038913960400191505060405180910390fd5b610b7983836114c5565b505050565b6000610b8a600261157e565b905090565b610ba0610b9a6114bd565b82611593565b610bf5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806126db6031913960400191505060405180910390fd5b610c00838383611687565b505050565b6000610c5882600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206118ca90919063ffffffff16565b905092915050565b610c7b838383604051806020016040528060008152506110ab565b505050565b600080610c978360026118e490919063ffffffff16565b50905080915050919050565b6000610cd3826040518060600160405280602981526020016125eb6029913960026119139092919063ffffffff16565b9050919050565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d725780601f10610d4757610100808354040283529160200191610d72565b820191906000526020600020905b815481529060010190602001808311610d5557829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806125c1602a913960400191505060405180910390fd5b610e4a600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611932565b9050919050565b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ee95780601f10610ebe57610100808354040283529160200191610ee9565b820191906000526020600020905b815481529060010190602001808311610ecc57829003601f168201915b5050505050905090565b610efb6114bd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f9c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b8060056000610fa96114bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166110566114bd565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b6110bc6110b66114bd565b83611593565b611111576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806126db6031913960400191505060405180910390fd5b61111d84848484611947565b50505050565b606061112e826114a0565b611183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061268b602f913960400191505060405180910390fd5b6060600860008481526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561122c5780601f106112015761010080835404028352916020019161122c565b820191906000526020600020905b81548152906001019060200180831161120f57829003601f168201915b5050505050905060006009805460018160011615610100020316600290049050141561125b5780915050611407565b6000815111156113345760098160405160200180838054600181600116156101000203166002900480156112c65780601f106112a45761010080835404028352918201916112c6565b820191906000526020600020905b8154815290600101906020018083116112b2575b505082805190602001908083835b602083106112f757805182526020820191506020810190506020830392506112d4565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052915050611407565b600961133f846119b9565b604051602001808380546001816001161561010002031660029004801561139d5780601f1061137b57610100808354040283529182019161139d565b820191906000526020600020905b815481529060010190602001808311611389575b505082805190602001908083835b602083106113ce57805182526020820191506020810190506020830392506113ab565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529150505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60006114b6826002611b0090919063ffffffff16565b9050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661153883610ca3565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061158c82600001611b1a565b9050919050565b600061159e826114a0565b6115f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061255d602c913960400191505060405180910390fd5b60006115fe83610ca3565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061166d57508373ffffffffffffffffffffffffffffffffffffffff166116558461099f565b73ffffffffffffffffffffffffffffffffffffffff16145b8061167e575061167d818561140c565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166116a782610ca3565b73ffffffffffffffffffffffffffffffffffffffff1614611713576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806126626029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611799576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806125396024913960400191505060405180910390fd5b6117a4838383611b2b565b6117af6000826114c5565b61180081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611b3090919063ffffffff16565b5061185281600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611b4a90919063ffffffff16565b5061186981836002611b649092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006118d98360000183611b99565b60001c905092915050565b6000806000806118f78660000186611c1c565b915091508160001c8160001c8090509350935050509250929050565b6000611926846000018460001b84611cb5565b60001c90509392505050565b600061194082600001611dab565b9050919050565b611952848484611687565b61195e84848484611dbc565b6119b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806125076032913960400191505060405180910390fd5b50505050565b60606000821415611a01576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611afb565b600082905060005b60008214611a2b578080600101915050600a8281611a2357fe5b049150611a09565b60608167ffffffffffffffff81118015611a4457600080fd5b506040519080825280601f01601f191660200182016040528015611a775781602001600182028036833780820191505090505b50905060006001830390508593505b60008414611af357600a8481611a9857fe5b0660300160f81b82828060019003935081518110611ab257fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8481611aeb57fe5b049350611a86565b819450505050505b919050565b6000611b12836000018360001b612001565b905092915050565b600081600001805490509050919050565b505050565b6000611b42836000018360001b612024565b905092915050565b6000611b5c836000018360001b61210c565b905092915050565b6000611b90846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b61217c565b90509392505050565b600081836000018054905011611bfa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806124e56022913960400191505060405180910390fd5b826000018281548110611c0957fe5b9060005260206000200154905092915050565b60008082846000018054905011611c7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806126146022913960400191505060405180910390fd5b6000846000018481548110611c8f57fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b60008084600101600085815260200190815260200160002054905060008114158390611d7c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d41578082015181840152602081019050611d26565b50505050905090810190601f168015611d6e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50846000016001820381548110611d8f57fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b6000611ddd8473ffffffffffffffffffffffffffffffffffffffff16612258565b611dea5760019050611ff9565b6060611f8063150b7a0260e01b611dff6114bd565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611eaf578082015181840152602081019050611e94565b50505050905090810190601f168015611edc5780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051806060016040528060328152602001612507603291398773ffffffffffffffffffffffffffffffffffffffff166122a39092919063ffffffff16565b90506000818060200190516020811015611f9957600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b600080836001016000848152602001908152602001600020541415905092915050565b60008083600101600084815260200190815260200160002054905060008114612100576000600182039050600060018660000180549050039050600086600001828154811061206f57fe5b906000526020600020015490508087600001848154811061208c57fe5b90600052602060002001819055506001830187600101600083815260200190815260200160002081905550866000018054806120c457fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050612106565b60009150505b92915050565b600061211883836122bb565b612171578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612176565b600090505b92915050565b600080846001016000858152602001908152602001600020549050600081141561222357846000016040518060400160405280868152602001858152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508460000180549050856001016000868152602001908152602001600020819055506001915050612251565b8285600001600183038154811061223657fe5b90600052602060002090600202016001018190555060009150505b9392505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561229a57506000801b8214155b92505050919050565b60606122b284846000856122de565b90509392505050565b600080836001016000848152602001908152602001600020541415905092915050565b60606122e985612258565b61235b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106123ab5780518252602082019150602081019050602083039250612388565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461240d576040519150601f19603f3d011682016040523d82523d6000602084013e612412565b606091505b509150915081156124275780925050506124dc565b60008151111561243a5780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124a1578082015181840152602081019050612486565b50505050905090810190601f1680156124ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b94935050505056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a26469706673582212204c4560daceef56fae2306bd2d79114d577938e9288a7277094a5629dcd707e7064736f6c634300060b0033", "immutableReferences": {}, "sourceMap": "561:16178:11:-:0;;;3565:365;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;751:40:8;418:10;770:20;;751:18;;;:40;;:::i;:::-;3645:4:11;3637:5;:12;;;;;;;;;;;;:::i;:::-;;3669:6;3659:7;:16;;;;;;;;;;;;:::i;:::-;;3763:40;2730:10;3782:20;;3763:18;;;:40;;:::i;:::-;3813:49;3062:10;3832:29;;3813:18;;;:49;;:::i;:::-;3872:51;3435:10;3891:31;;3872:18;;;:51;;:::i;:::-;3565:365;;561:16178;;1482:198:8;1580:10;1565:25;;:11;:25;;;;;1557:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1669:4;1633:20;:33;1654:11;1633:33;;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;1482:198;:::o;561:16178:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", "deployedSourceMap": "561:16178:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;948:140:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4486:90:11;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7093:209;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6651:381;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6161:200;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7941:300;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5938:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8307:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6433:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4257:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5772:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3989:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4640:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7369:290;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8522:282;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4800:740;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7725:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;948:140:8;1025:4;1048:20;:33;1069:11;1048:33;;;;;;;;;;;;;;;;;;;;;;;;;;;1041:40;;948:140;;;:::o;4486:90:11:-;4532:13;4564:5;4557:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4486:90;:::o;7093:209::-;7161:7;7188:16;7196:7;7188;:16::i;:::-;7180:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7271:15;:24;7287:7;7271:24;;;;;;;;;;;;;;;;;;;;;7264:31;;7093:209;;;:::o;6651:381::-;6731:13;6747:16;6755:7;6747;:16::i;:::-;6731:32;;6787:5;6781:11;;:2;:11;;;;6773:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6865:5;6849:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;6874:37;6891:5;6898:12;:10;:12::i;:::-;6874:16;:37::i;:::-;6849:62;6841:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7004:21;7013:2;7017:7;7004:8;:21::i;:::-;6651:381;;;:::o;6161:200::-;6214:7;6333:21;:12;:19;:21::i;:::-;6326:28;;6161:200;:::o;7941:300::-;8100:41;8119:12;:10;:12::i;:::-;8133:7;8100:18;:41::i;:::-;8092:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8206:28;8216:4;8222:2;8226:7;8206:9;:28::i;:::-;7941:300;;;:::o;5938:152::-;6027:7;6053:30;6077:5;6053:13;:20;6067:5;6053:20;;;;;;;;;;;;;;;:23;;:30;;;;:::i;:::-;6046:37;;5938:152;;;;:::o;8307:149::-;8410:39;8427:4;8433:2;8437:7;8410:39;;;;;;;;;;;;:16;:39::i;:::-;8307:149;;;:::o;6433:161::-;6500:7;6520:15;6541:22;6557:5;6541:12;:15;;:22;;;;:::i;:::-;6519:44;;;6580:7;6573:14;;;6433:161;;;:::o;4257:167::-;4321:7;4347:70;4364:7;4347:70;;;;;;;;;;;;;;;;;:12;:16;;:70;;;;;:::i;:::-;4340:77;;4257:167;;;:::o;5772:87::-;5812:13;5844:8;5837:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5772:87;:::o;3989:211::-;4053:7;4097:1;4080:19;;:5;:19;;;;4072:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4164:29;:13;:20;4178:5;4164:20;;;;;;;;;;;;;;;:27;:29::i;:::-;4157:36;;3989:211;;;:::o;4640:94::-;4688:13;4720:7;4713:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4640:94;:::o;7369:290::-;7483:12;:10;:12::i;:::-;7471:24;;:8;:24;;;;7463:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7581:8;7536:18;:32;7555:12;:10;:12::i;:::-;7536:32;;;;;;;;;;;;;;;:42;7569:8;7536:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;7633:8;7604:48;;7619:12;:10;:12::i;:::-;7604:48;;;7643:8;7604:48;;;;;;;;;;;;;;;;;;;;;;7369:290;;:::o;8522:282::-;8653:41;8672:12;:10;:12::i;:::-;8686:7;8653:18;:41::i;:::-;8645:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8758:39;8772:4;8778:2;8782:7;8791:5;8758:13;:39::i;:::-;8522:282;;;;:::o;4800:740::-;4865:13;4898:16;4906:7;4898;:16::i;:::-;4890:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4977:23;5003:10;:19;5014:7;5003:19;;;;;;;;;;;4977:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5121:1;5101:8;5095:22;;;;;;;;;;;;;;;;:27;5091:74;;;5145:9;5138:16;;;;;5091:74;5293:1;5273:9;5267:23;:27;5263:110;;;5341:8;5351:9;5324:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5310:52;;;;;5263:110;5503:8;5513:18;:7;:16;:18::i;:::-;5486:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5472:61;;;4800:740;;;;:::o;7725:154::-;7814:4;7837:18;:25;7856:5;7837:25;;;;;;;;;;;;;;;:35;7863:8;7837:35;;;;;;;;;;;;;;;;;;;;;;;;;7830:42;;7725:154;;;;:::o;10237:117::-;10294:4;10317:30;10339:7;10317:12;:21;;:30;;;;:::i;:::-;10310:37;;10237:117;;;:::o;590:104:4:-;643:15;677:10;670:17;;590:104;:::o;15893:155:11:-;15985:2;15958:15;:24;15974:7;15958:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;16033:7;16029:2;16002:39;;16011:16;16019:7;16011;:16::i;:::-;16002:39;;;;;;;;;;;;15893:155;;:::o;7023:121:19:-;7092:7;7118:19;7126:3;:10;;7118:7;:19::i;:::-;7111:26;;7023:121;;;:::o;10512:329:11:-;10597:4;10621:16;10629:7;10621;:16::i;:::-;10613:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10696:13;10712:16;10720:7;10712;:16::i;:::-;10696:32;;10757:5;10746:16;;:7;:16;;;:51;;;;10790:7;10766:31;;:20;10778:7;10766:11;:20::i;:::-;:31;;;10746:51;:87;;;;10801:32;10818:5;10825:7;10801:16;:32::i;:::-;10746:87;10738:96;;;10512:329;;;;:::o;13506:559::-;13623:4;13603:24;;:16;13611:7;13603;:16::i;:::-;:24;;;13595:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13705:1;13691:16;;:2;:16;;;;13683:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13759:39;13780:4;13786:2;13790:7;13759:20;:39::i;:::-;13860:29;13877:1;13881:7;13860:8;:29::i;:::-;13900:35;13927:7;13900:13;:19;13914:4;13900:19;;;;;;;;;;;;;;;:26;;:35;;;;:::i;:::-;;13945:30;13967:7;13945:13;:17;13959:2;13945:17;;;;;;;;;;;;;;;:21;;:30;;;;:::i;:::-;;13986:29;14003:7;14012:2;13986:12;:16;;:29;;;;;:::i;:::-;;14050:7;14046:2;14031:27;;14040:4;14031:27;;;;;;;;;;;;13506:559;;;:::o;7649:135:20:-;7720:7;7754:22;7758:3;:10;;7770:5;7754:3;:22::i;:::-;7746:31;;7739:38;;7649:135;;;;:::o;7472:224:19:-;7552:7;7561;7581:11;7594:13;7611:22;7615:3;:10;;7627:5;7611:3;:22::i;:::-;7580:53;;;;7659:3;7651:12;;7681:5;7673:14;;7643:46;;;;;;;;;7472:224;;;;;:::o;8115:202::-;8222:7;8264:44;8269:3;:10;;8289:3;8281:12;;8295;8264:4;:44::i;:::-;8256:53;;8241:69;;8115:202;;;;;:::o;7205:112:20:-;7265:7;7291:19;7299:3;:10;;7291:7;:19::i;:::-;7284:26;;7205:112;;;:::o;9665:269:11:-;9778:28;9788:4;9794:2;9798:7;9778:9;:28::i;:::-;9824:48;9847:4;9853:2;9857:7;9866:5;9824:22;:48::i;:::-;9816:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9665:269;;;;:::o;202:723:22:-;258:13;484:1;475:5;:10;471:51;;;501:10;;;;;;;;;;;;;;;;;;;;;471:51;531:12;546:5;531:20;;561:14;585:75;600:1;592:4;:9;585:75;;617:8;;;;;;;647:2;639:10;;;;;;;;;585:75;;;669:19;701:6;691:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;669:39;;718:13;743:1;734:6;:10;718:26;;761:5;754:12;;776:112;791:1;783:4;:9;776:112;;849:2;842:4;:9;;;;;;837:2;:14;826:27;;808:6;815:7;;;;;;;808:15;;;;;;;;;;;:45;;;;;;;;;;;875:2;867:10;;;;;;;;;776:112;;;911:6;897:21;;;;;;202:723;;;;:::o;6791:149:19:-;6875:4;6898:35;6908:3;:10;;6928:3;6920:12;;6898:9;:35::i;:::-;6891:42;;6791:149;;;;:::o;4483:108::-;4539:7;4565:3;:12;;:19;;;;4558:26;;4483:108;;;:::o;16644:93:11:-;;;;:::o;6764:135:20:-;6834:4;6857:35;6865:3;:10;;6885:5;6877:14;;6857:7;:35::i;:::-;6850:42;;6764:135;;;;:::o;6467:129::-;6534:4;6557:32;6562:3;:10;;6582:5;6574:14;;6557:4;:32::i;:::-;6550:39;;6467:129;;;;:::o;6239:174:19:-;6328:4;6351:55;6356:3;:10;;6376:3;6368:12;;6398:5;6390:14;;6382:23;;6351:4;:55::i;:::-;6344:62;;6239:174;;;;;:::o;4423:201:20:-;4490:7;4538:5;4517:3;:11;;:18;;;;:26;4509:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4599:3;:11;;4611:5;4599:18;;;;;;;;;;;;;;;;4592:25;;4423:201;;;;:::o;4934:274:19:-;5001:7;5010;5059:5;5037:3;:12;;:19;;;;:27;5029:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5114:22;5139:3;:12;;5152:5;5139:19;;;;;;;;;;;;;;;;;;5114:44;;5176:5;:10;;;5188:5;:12;;;5168:33;;;;;4934:274;;;;;:::o;5615:315::-;5709:7;5728:16;5747:3;:12;;:17;5760:3;5747:17;;;;;;;;;;;;5728:36;;5794:1;5782:8;:13;;5797:12;5774:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5863:3;:12;;5887:1;5876:8;:12;5863:26;;;;;;;;;;;;;;;;;;:33;;;5856:40;;;5615:315;;;;;:::o;3984:107:20:-;4040:7;4066:3;:11;;:18;;;;4059:25;;3984:107;;;:::o;15298:589:11:-;15418:4;15443:15;:2;:13;;;:15::i;:::-;15438:58;;15481:4;15474:11;;;;15438:58;15505:23;15531:246;15583:45;;;15642:12;:10;:12::i;:::-;15668:4;15686:7;15707:5;15547:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15531:246;;;;;;;;;;;;;;;;;:2;:15;;;;:246;;;;;:::i;:::-;15505:272;;15787:13;15814:10;15803:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15787:48;;1068:10;15863:16;;15853:26;;;:6;:26;;;;15845:35;;;;15298:589;;;;;;;:::o;4270:123:19:-;4341:4;4385:1;4364:3;:12;;:17;4377:3;4364:17;;;;;;;;;;;;:22;;4357:29;;4270:123;;;;:::o;2183:1512:20:-;2249:4;2365:18;2386:3;:12;;:19;2399:5;2386:19;;;;;;;;;;;;2365:40;;2434:1;2420:10;:15;2416:1273;;2777:21;2814:1;2801:10;:14;2777:38;;2829:17;2870:1;2849:3;:11;;:18;;;;:22;2829:42;;3111:17;3131:3;:11;;3143:9;3131:22;;;;;;;;;;;;;;;;3111:42;;3274:9;3245:3;:11;;3257:13;3245:26;;;;;;;;;;;;;;;:38;;;;3391:1;3375:13;:17;3349:3;:12;;:23;3362:9;3349:23;;;;;;;;;;;:43;;;;3498:3;:11;;:17;;;;;;;;;;;;;;;;;;;;;;;;3590:3;:12;;:19;3603:5;3590:19;;;;;;;;;;;3583:26;;;3631:4;3624:11;;;;;;;;2416:1273;3673:5;3666:12;;;2183:1512;;;;;:::o;1611:404::-;1674:4;1695:21;1705:3;1710:5;1695:9;:21::i;:::-;1690:319;;1732:3;:11;;1749:5;1732:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1912:3;:11;;:18;;;;1890:3;:12;;:19;1903:5;1890:19;;;;;;;;;;;:40;;;;1951:4;1944:11;;;;1690:319;1993:5;1986:12;;1611:404;;;;;:::o;1828:678:19:-;1904:4;2018:16;2037:3;:12;;:17;2050:3;2037:17;;;;;;;;;;;;2018:36;;2081:1;2069:8;:13;2065:435;;;2135:3;:12;;2153:38;;;;;;;;2170:3;2153:38;;;;2183:5;2153:38;;;2135:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2347:3;:12;;:19;;;;2327:3;:12;;:17;2340:3;2327:17;;;;;;;;;;;:39;;;;2387:4;2380:11;;;;;2065:435;2458:5;2422:3;:12;;2446:1;2435:8;:12;2422:26;;;;;;;;;;;;;;;;;;:33;;:41;;;;2484:5;2477:12;;;1828:678;;;;;;:::o;718:610:17:-;778:4;1036:16;1062:19;1084:66;1062:88;;;;1251:7;1239:20;1227:32;;1290:11;1278:8;:23;;:42;;;;;1317:3;1305:15;;:8;:15;;1278:42;1270:51;;;;718:610;;;:::o;3770:194::-;3873:12;3904:53;3927:6;3935:4;3941:1;3944:12;3904:22;:53::i;:::-;3897:60;;3770:194;;;;;:::o;3776:127:20:-;3849:4;3895:1;3872:3;:12;;:19;3885:5;3872:19;;;;;;;;;;;;:24;;3865:31;;3776:127;;;;:::o;5117:958:17:-;5247:12;5279:18;5290:6;5279:10;:18::i;:::-;5271:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5402:12;5416:23;5443:6;:11;;5463:8;5474:4;5443:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5401:78;;;;5493:7;5489:580;;;5523:10;5516:17;;;;;;5489:580;5654:1;5634:10;:17;:21;5630:429;;;5892:10;5886:17;5952:15;5939:10;5935:2;5931:19;5924:44;5841:145;6031:12;6024:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5117:958;;;;;;;:::o", @@ -429,15 +429,15 @@ "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol", "exportedSymbols": { "ERC721": [ - 2794 + 2825 ] }, - "id": 2795, + "id": 2826, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1865, + "id": 1896, "literals": [ "solidity", "^", @@ -450,10 +450,10 @@ { "absolutePath": "@openzeppelin/contracts/GSN/Context.sol", "file": "../../GSN/Context.sol", - "id": 1866, + "id": 1897, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 1136, + "scope": 2826, + "sourceUnit": 1167, "src": "58:31:11", "symbolAliases": [], "unitAlias": "" @@ -461,10 +461,10 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", "file": "./IERC721.sol", - "id": 1867, + "id": 1898, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 2941, + "scope": 2826, + "sourceUnit": 2972, "src": "90:23:11", "symbolAliases": [], "unitAlias": "" @@ -472,10 +472,10 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Metadata.sol", "file": "./IERC721Metadata.sol", - "id": 1868, + "id": 1899, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 2999, + "scope": 2826, + "sourceUnit": 3030, "src": "114:31:11", "symbolAliases": [], "unitAlias": "" @@ -483,10 +483,10 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol", "file": "./IERC721Enumerable.sol", - "id": 1869, + "id": 1900, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 2972, + "scope": 2826, + "sourceUnit": 3003, "src": "146:33:11", "symbolAliases": [], "unitAlias": "" @@ -494,10 +494,10 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", "file": "./IERC721Receiver.sol", - "id": 1870, + "id": 1901, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 3017, + "scope": 2826, + "sourceUnit": 3048, "src": "180:31:11", "symbolAliases": [], "unitAlias": "" @@ -505,10 +505,10 @@ { "absolutePath": "@openzeppelin/contracts/introspection/ERC165.sol", "file": "../../introspection/ERC165.sol", - "id": 1871, + "id": 1902, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 1656, + "scope": 2826, + "sourceUnit": 1687, "src": "212:40:11", "symbolAliases": [], "unitAlias": "" @@ -516,10 +516,10 @@ { "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", "file": "../../math/SafeMath.sol", - "id": 1872, + "id": 1903, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 1864, + "scope": 2826, + "sourceUnit": 1895, "src": "253:33:11", "symbolAliases": [], "unitAlias": "" @@ -527,10 +527,10 @@ { "absolutePath": "@openzeppelin/contracts/utils/Address.sol", "file": "../../utils/Address.sol", - "id": 1873, + "id": 1904, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 3221, + "scope": 2826, + "sourceUnit": 3252, "src": "287:33:11", "symbolAliases": [], "unitAlias": "" @@ -538,10 +538,10 @@ { "absolutePath": "@openzeppelin/contracts/utils/EnumerableSet.sol", "file": "../../utils/EnumerableSet.sol", - "id": 1874, + "id": 1905, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 4121, + "scope": 2826, + "sourceUnit": 4152, "src": "321:39:11", "symbolAliases": [], "unitAlias": "" @@ -549,10 +549,10 @@ { "absolutePath": "@openzeppelin/contracts/utils/EnumerableMap.sol", "file": "../../utils/EnumerableMap.sol", - "id": 1875, + "id": 1906, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 3726, + "scope": 2826, + "sourceUnit": 3757, "src": "361:39:11", "symbolAliases": [], "unitAlias": "" @@ -560,10 +560,10 @@ { "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", "file": "../../utils/Strings.sol", - "id": 1876, + "id": 1907, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 4298, + "scope": 2826, + "sourceUnit": 4329, "src": "401:33:11", "symbolAliases": [], "unitAlias": "" @@ -575,17 +575,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1878, + "id": 1909, "name": "Context", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1135, + "referencedDeclaration": 1166, "src": "580:7:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$1135", + "typeIdentifier": "t_contract$_Context_$1166", "typeString": "contract Context" } }, - "id": 1879, + "id": 1910, "nodeType": "InheritanceSpecifier", "src": "580:7:11" }, @@ -593,17 +593,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1880, + "id": 1911, "name": "ERC165", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1655, + "referencedDeclaration": 1686, "src": "589:6:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$1655", + "typeIdentifier": "t_contract$_ERC165_$1686", "typeString": "contract ERC165" } }, - "id": 1881, + "id": 1912, "nodeType": "InheritanceSpecifier", "src": "589:6:11" }, @@ -611,17 +611,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1882, + "id": 1913, "name": "IERC721", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2940, + "referencedDeclaration": 2971, "src": "597:7:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$2940", + "typeIdentifier": "t_contract$_IERC721_$2971", "typeString": "contract IERC721" } }, - "id": 1883, + "id": 1914, "nodeType": "InheritanceSpecifier", "src": "597:7:11" }, @@ -629,17 +629,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1884, + "id": 1915, "name": "IERC721Metadata", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2998, + "referencedDeclaration": 3029, "src": "606:15:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$2998", + "typeIdentifier": "t_contract$_IERC721Metadata_$3029", "typeString": "contract IERC721Metadata" } }, - "id": 1885, + "id": 1916, "nodeType": "InheritanceSpecifier", "src": "606:15:11" }, @@ -647,68 +647,68 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1886, + "id": 1917, "name": "IERC721Enumerable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2971, + "referencedDeclaration": 3002, "src": "623:17:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$2971", + "typeIdentifier": "t_contract$_IERC721Enumerable_$3002", "typeString": "contract IERC721Enumerable" } }, - "id": 1887, + "id": 1918, "nodeType": "InheritanceSpecifier", "src": "623:17:11" } ], "contractDependencies": [ - 1135, - 1655, - 1667, - 2940, + 1166, + 1686, + 1698, 2971, - 2998 + 3002, + 3029 ], "contractKind": "contract", "documentation": { - "id": 1877, + "id": 1908, "nodeType": "StructuredDocumentation", "src": "436:124:11", "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" }, "fullyImplemented": true, - "id": 2794, + "id": 2825, "linearizedBaseContracts": [ - 2794, + 2825, + 3002, + 3029, 2971, - 2998, - 2940, - 1655, - 1667, - 1135 + 1686, + 1698, + 1166 ], "name": "ERC721", "nodeType": "ContractDefinition", "nodes": [ { - "id": 1890, + "id": 1921, "libraryName": { "contractScope": null, - "id": 1888, + "id": 1919, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1863, + "referencedDeclaration": 1894, "src": "653:8:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1863", + "typeIdentifier": "t_contract$_SafeMath_$1894", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "647:27:11", "typeName": { - "id": 1889, + "id": 1920, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "666:7:11", @@ -719,23 +719,23 @@ } }, { - "id": 1893, + "id": 1924, "libraryName": { "contractScope": null, - "id": 1891, + "id": 1922, "name": "Address", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3220, + "referencedDeclaration": 3251, "src": "685:7:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$3220", + "typeIdentifier": "t_contract$_Address_$3251", "typeString": "library Address" } }, "nodeType": "UsingForDirective", "src": "679:26:11", "typeName": { - "id": 1892, + "id": 1923, "name": "address", "nodeType": "ElementaryTypeName", "src": "697:7:11", @@ -747,16 +747,16 @@ } }, { - "id": 1896, + "id": 1927, "libraryName": { "contractScope": null, - "id": 1894, + "id": 1925, "name": "EnumerableSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4120, + "referencedDeclaration": 4151, "src": "716:13:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_EnumerableSet_$4120", + "typeIdentifier": "t_contract$_EnumerableSet_$4151", "typeString": "library EnumerableSet" } }, @@ -764,28 +764,28 @@ "src": "710:46:11", "typeName": { "contractScope": null, - "id": 1895, + "id": 1926, "name": "EnumerableSet.UintSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4025, + "referencedDeclaration": 4056, "src": "734:21:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" } } }, { - "id": 1899, + "id": 1930, "libraryName": { "contractScope": null, - "id": 1897, + "id": 1928, "name": "EnumerableMap", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3725, + "referencedDeclaration": 3756, "src": "767:13:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_EnumerableMap_$3725", + "typeIdentifier": "t_contract$_EnumerableMap_$3756", "typeString": "library EnumerableMap" } }, @@ -793,35 +793,35 @@ "src": "761:55:11", "typeName": { "contractScope": null, - "id": 1898, + "id": 1929, "name": "EnumerableMap.UintToAddressMap", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3550, + "referencedDeclaration": 3581, "src": "785:30:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" } } }, { - "id": 1902, + "id": 1933, "libraryName": { "contractScope": null, - "id": 1900, + "id": 1931, "name": "Strings", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4297, + "referencedDeclaration": 4328, "src": "827:7:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_Strings_$4297", + "typeIdentifier": "t_contract$_Strings_$4328", "typeString": "library Strings" } }, "nodeType": "UsingForDirective", "src": "821:26:11", "typeName": { - "id": 1901, + "id": 1932, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "839:7:11", @@ -833,12 +833,12 @@ }, { "constant": true, - "id": 1905, + "id": 1936, "mutability": "constant", "name": "_ERC721_RECEIVED", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "1025:53:11", "stateVariable": true, "storageLocation": "default", @@ -847,7 +847,7 @@ "typeString": "bytes4" }, "typeName": { - "id": 1903, + "id": 1934, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "1025:6:11", @@ -859,7 +859,7 @@ "value": { "argumentTypes": null, "hexValue": "30783135306237613032", - "id": 1904, + "id": 1935, "isConstant": false, "isLValue": false, "isPure": true, @@ -878,23 +878,23 @@ }, { "constant": false, - "id": 1909, + "id": 1940, "mutability": "mutable", "name": "_holderTokens", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "1162:64:11", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4025_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4056_storage_$", "typeString": "mapping(address => struct EnumerableSet.UintSet)" }, "typeName": { - "id": 1908, + "id": 1939, "keyType": { - "id": 1906, + "id": 1937, "name": "address", "nodeType": "ElementaryTypeName", "src": "1171:7:11", @@ -906,18 +906,18 @@ "nodeType": "Mapping", "src": "1162:42:11", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4025_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4056_storage_$", "typeString": "mapping(address => struct EnumerableSet.UintSet)" }, "valueType": { "contractScope": null, - "id": 1907, + "id": 1938, "name": "EnumerableSet.UintSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4025, + "referencedDeclaration": 4056, "src": "1182:21:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" } } @@ -927,28 +927,28 @@ }, { "constant": false, - "id": 1911, + "id": 1942, "mutability": "mutable", "name": "_tokenOwners", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "1290:51:11", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage", "typeString": "struct EnumerableMap.UintToAddressMap" }, "typeName": { "contractScope": null, - "id": 1910, + "id": 1941, "name": "EnumerableMap.UintToAddressMap", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3550, + "referencedDeclaration": 3581, "src": "1290:30:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" } }, @@ -957,12 +957,12 @@ }, { "constant": false, - "id": 1915, + "id": 1946, "mutability": "mutable", "name": "_tokenApprovals", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "1397:52:11", "stateVariable": true, "storageLocation": "default", @@ -971,9 +971,9 @@ "typeString": "mapping(uint256 => address)" }, "typeName": { - "id": 1914, + "id": 1945, "keyType": { - "id": 1912, + "id": 1943, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1406:7:11", @@ -989,7 +989,7 @@ "typeString": "mapping(uint256 => address)" }, "valueType": { - "id": 1913, + "id": 1944, "name": "address", "nodeType": "ElementaryTypeName", "src": "1417:7:11", @@ -1005,12 +1005,12 @@ }, { "constant": false, - "id": 1921, + "id": 1952, "mutability": "mutable", "name": "_operatorApprovals", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "1504:73:11", "stateVariable": true, "storageLocation": "default", @@ -1019,9 +1019,9 @@ "typeString": "mapping(address => mapping(address => bool))" }, "typeName": { - "id": 1920, + "id": 1951, "keyType": { - "id": 1916, + "id": 1947, "name": "address", "nodeType": "ElementaryTypeName", "src": "1513:7:11", @@ -1037,9 +1037,9 @@ "typeString": "mapping(address => mapping(address => bool))" }, "valueType": { - "id": 1919, + "id": 1950, "keyType": { - "id": 1917, + "id": 1948, "name": "address", "nodeType": "ElementaryTypeName", "src": "1533:7:11", @@ -1055,7 +1055,7 @@ "typeString": "mapping(address => bool)" }, "valueType": { - "id": 1918, + "id": 1949, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1544:4:11", @@ -1071,12 +1071,12 @@ }, { "constant": false, - "id": 1923, + "id": 1954, "mutability": "mutable", "name": "_name", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "1602:20:11", "stateVariable": true, "storageLocation": "default", @@ -1085,7 +1085,7 @@ "typeString": "string" }, "typeName": { - "id": 1922, + "id": 1953, "name": "string", "nodeType": "ElementaryTypeName", "src": "1602:6:11", @@ -1099,12 +1099,12 @@ }, { "constant": false, - "id": 1925, + "id": 1956, "mutability": "mutable", "name": "_symbol", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "1649:22:11", "stateVariable": true, "storageLocation": "default", @@ -1113,7 +1113,7 @@ "typeString": "string" }, "typeName": { - "id": 1924, + "id": 1955, "name": "string", "nodeType": "ElementaryTypeName", "src": "1649:6:11", @@ -1127,12 +1127,12 @@ }, { "constant": false, - "id": 1929, + "id": 1960, "mutability": "mutable", "name": "_tokenURIs", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "1717:45:11", "stateVariable": true, "storageLocation": "default", @@ -1141,9 +1141,9 @@ "typeString": "mapping(uint256 => string)" }, "typeName": { - "id": 1928, + "id": 1959, "keyType": { - "id": 1926, + "id": 1957, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1725:7:11", @@ -1159,7 +1159,7 @@ "typeString": "mapping(uint256 => string)" }, "valueType": { - "id": 1927, + "id": 1958, "name": "string", "nodeType": "ElementaryTypeName", "src": "1736:6:11", @@ -1174,12 +1174,12 @@ }, { "constant": false, - "id": 1931, + "id": 1962, "mutability": "mutable", "name": "_baseURI", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "1785:23:11", "stateVariable": true, "storageLocation": "default", @@ -1188,7 +1188,7 @@ "typeString": "string" }, "typeName": { - "id": 1930, + "id": 1961, "name": "string", "nodeType": "ElementaryTypeName", "src": "1785:6:11", @@ -1202,12 +1202,12 @@ }, { "constant": true, - "id": 1934, + "id": 1965, "mutability": "constant", "name": "_INTERFACE_ID_ERC721", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "2683:57:11", "stateVariable": true, "storageLocation": "default", @@ -1216,7 +1216,7 @@ "typeString": "bytes4" }, "typeName": { - "id": 1932, + "id": 1963, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "2683:6:11", @@ -1228,7 +1228,7 @@ "value": { "argumentTypes": null, "hexValue": "30783830616335386364", - "id": 1933, + "id": 1964, "isConstant": false, "isLValue": false, "isPure": true, @@ -1247,12 +1247,12 @@ }, { "constant": true, - "id": 1937, + "id": 1968, "mutability": "constant", "name": "_INTERFACE_ID_ERC721_METADATA", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "3006:66:11", "stateVariable": true, "storageLocation": "default", @@ -1261,7 +1261,7 @@ "typeString": "bytes4" }, "typeName": { - "id": 1935, + "id": 1966, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "3006:6:11", @@ -1273,7 +1273,7 @@ "value": { "argumentTypes": null, "hexValue": "30783562356531333966", - "id": 1936, + "id": 1967, "isConstant": false, "isLValue": false, "isPure": true, @@ -1292,12 +1292,12 @@ }, { "constant": true, - "id": 1940, + "id": 1971, "mutability": "constant", "name": "_INTERFACE_ID_ERC721_ENUMERABLE", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "3377:68:11", "stateVariable": true, "storageLocation": "default", @@ -1306,7 +1306,7 @@ "typeString": "bytes4" }, "typeName": { - "id": 1938, + "id": 1969, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "3377:6:11", @@ -1318,7 +1318,7 @@ "value": { "argumentTypes": null, "hexValue": "30783738306539643633", - "id": 1939, + "id": 1970, "isConstant": false, "isLValue": false, "isPure": true, @@ -1337,25 +1337,25 @@ }, { "body": { - "id": 1968, + "id": 1999, "nodeType": "Block", "src": "3627:303:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 1950, + "id": 1981, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1948, + "id": 1979, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1923, + "referencedDeclaration": 1954, "src": "3637:5:11", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -1366,11 +1366,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1949, + "id": 1980, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1943, + "referencedDeclaration": 1974, "src": "3645:4:11", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -1383,25 +1383,25 @@ "typeString": "string storage ref" } }, - "id": 1951, + "id": 1982, "nodeType": "ExpressionStatement", "src": "3637:12:11" }, { "expression": { "argumentTypes": null, - "id": 1954, + "id": 1985, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1952, + "id": 1983, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1925, + "referencedDeclaration": 1956, "src": "3659:7:11", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -1412,11 +1412,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1953, + "id": 1984, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1945, + "referencedDeclaration": 1976, "src": "3669:6:11", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -1429,7 +1429,7 @@ "typeString": "string storage ref" } }, - "id": 1955, + "id": 1986, "nodeType": "ExpressionStatement", "src": "3659:16:11" }, @@ -1439,11 +1439,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1957, + "id": 1988, "name": "_INTERFACE_ID_ERC721", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1934, + "referencedDeclaration": 1965, "src": "3782:20:11", "typeDescriptions": { "typeIdentifier": "t_bytes4", @@ -1458,18 +1458,18 @@ "typeString": "bytes4" } ], - "id": 1956, + "id": 1987, "name": "_registerInterface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1654, + "referencedDeclaration": 1685, "src": "3763:18:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, - "id": 1958, + "id": 1989, "isConstant": false, "isLValue": false, "isPure": false, @@ -1484,7 +1484,7 @@ "typeString": "tuple()" } }, - "id": 1959, + "id": 1990, "nodeType": "ExpressionStatement", "src": "3763:40:11" }, @@ -1494,11 +1494,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1961, + "id": 1992, "name": "_INTERFACE_ID_ERC721_METADATA", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1937, + "referencedDeclaration": 1968, "src": "3832:29:11", "typeDescriptions": { "typeIdentifier": "t_bytes4", @@ -1513,18 +1513,18 @@ "typeString": "bytes4" } ], - "id": 1960, + "id": 1991, "name": "_registerInterface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1654, + "referencedDeclaration": 1685, "src": "3813:18:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, - "id": 1962, + "id": 1993, "isConstant": false, "isLValue": false, "isPure": false, @@ -1539,7 +1539,7 @@ "typeString": "tuple()" } }, - "id": 1963, + "id": 1994, "nodeType": "ExpressionStatement", "src": "3813:49:11" }, @@ -1549,11 +1549,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1965, + "id": 1996, "name": "_INTERFACE_ID_ERC721_ENUMERABLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1940, + "referencedDeclaration": 1971, "src": "3891:31:11", "typeDescriptions": { "typeIdentifier": "t_bytes4", @@ -1568,18 +1568,18 @@ "typeString": "bytes4" } ], - "id": 1964, + "id": 1995, "name": "_registerInterface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1654, + "referencedDeclaration": 1685, "src": "3872:18:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, - "id": 1966, + "id": 1997, "isConstant": false, "isLValue": false, "isPure": false, @@ -1594,19 +1594,19 @@ "typeString": "tuple()" } }, - "id": 1967, + "id": 1998, "nodeType": "ExpressionStatement", "src": "3872:51:11" } ] }, "documentation": { - "id": 1941, + "id": 1972, "nodeType": "StructuredDocumentation", "src": "3452:108:11", "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." }, - "id": 1969, + "id": 2000, "implemented": true, "kind": "constructor", "modifiers": [], @@ -1614,17 +1614,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1946, + "id": 1977, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1943, + "id": 1974, "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1969, + "scope": 2000, "src": "3578:18:11", "stateVariable": false, "storageLocation": "memory", @@ -1633,7 +1633,7 @@ "typeString": "string" }, "typeName": { - "id": 1942, + "id": 1973, "name": "string", "nodeType": "ElementaryTypeName", "src": "3578:6:11", @@ -1647,12 +1647,12 @@ }, { "constant": false, - "id": 1945, + "id": 1976, "mutability": "mutable", "name": "symbol", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1969, + "scope": 2000, "src": "3598:20:11", "stateVariable": false, "storageLocation": "memory", @@ -1661,7 +1661,7 @@ "typeString": "string" }, "typeName": { - "id": 1944, + "id": 1975, "name": "string", "nodeType": "ElementaryTypeName", "src": "3598:6:11", @@ -1677,12 +1677,12 @@ "src": "3577:42:11" }, "returnParameters": { - "id": 1947, + "id": 1978, "nodeType": "ParameterList", "parameters": [], "src": "3627:0:11" }, - "scope": 2794, + "scope": 2825, "src": "3565:365:11", "stateMutability": "nonpayable", "virtual": false, @@ -1690,10 +1690,10 @@ }, { "baseFunctions": [ - 2865 + 2896 ], "body": { - "id": 1994, + "id": 2025, "nodeType": "Block", "src": "4062:138:11", "statements": [ @@ -1707,18 +1707,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1984, + "id": 2015, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1979, + "id": 2010, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1972, + "referencedDeclaration": 2003, "src": "4080:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1733,7 +1733,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1982, + "id": 2013, "isConstant": false, "isLValue": false, "isPure": true, @@ -1756,7 +1756,7 @@ "typeString": "int_const 0" } ], - "id": 1981, + "id": 2012, "isConstant": false, "isLValue": false, "isPure": true, @@ -1768,7 +1768,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 1980, + "id": 2011, "name": "address", "nodeType": "ElementaryTypeName", "src": "4089:7:11", @@ -1778,7 +1778,7 @@ } } }, - "id": 1983, + "id": 2014, "isConstant": false, "isLValue": false, "isPure": true, @@ -1802,7 +1802,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 1985, + "id": 2016, "isConstant": false, "isLValue": false, "isPure": true, @@ -1829,7 +1829,7 @@ "typeString": "literal_string \"ERC721: balance query for the zero address\"" } ], - "id": 1978, + "id": 2009, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1843,7 +1843,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1986, + "id": 2017, "isConstant": false, "isLValue": false, "isPure": false, @@ -1858,7 +1858,7 @@ "typeString": "tuple()" } }, - "id": 1987, + "id": 2018, "nodeType": "ExpressionStatement", "src": "4072:74:11" }, @@ -1872,25 +1872,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1988, + "id": 2019, "name": "_holderTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1909, + "referencedDeclaration": 1940, "src": "4164:13:11", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4025_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4056_storage_$", "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" } }, - "id": 1990, + "id": 2021, "indexExpression": { "argumentTypes": null, - "id": 1989, + "id": 2020, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1972, + "referencedDeclaration": 2003, "src": "4178:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1904,25 +1904,25 @@ "nodeType": "IndexAccess", "src": "4164:20:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage", + "typeIdentifier": "t_struct$_UintSet_$4056_storage", "typeString": "struct EnumerableSet.UintSet storage ref" } }, - "id": 1991, + "id": 2022, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": 4099, + "referencedDeclaration": 4130, "src": "4164:27:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$4025_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$4025_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$4056_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$4056_storage_ptr_$", "typeString": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" } }, - "id": 1992, + "id": 2023, "isConstant": false, "isLValue": false, "isPure": false, @@ -1937,44 +1937,44 @@ "typeString": "uint256" } }, - "functionReturnParameters": 1977, - "id": 1993, + "functionReturnParameters": 2008, + "id": 2024, "nodeType": "Return", "src": "4157:36:11" } ] }, "documentation": { - "id": 1970, + "id": 2001, "nodeType": "StructuredDocumentation", "src": "3936:48:11", "text": " @dev See {IERC721-balanceOf}." }, "functionSelector": "70a08231", - "id": 1995, + "id": 2026, "implemented": true, "kind": "function", "modifiers": [], "name": "balanceOf", "nodeType": "FunctionDefinition", "overrides": { - "id": 1974, + "id": 2005, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4035:8:11" }, "parameters": { - "id": 1973, + "id": 2004, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1972, + "id": 2003, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1995, + "scope": 2026, "src": "4008:13:11", "stateVariable": false, "storageLocation": "default", @@ -1983,7 +1983,7 @@ "typeString": "address" }, "typeName": { - "id": 1971, + "id": 2002, "name": "address", "nodeType": "ElementaryTypeName", "src": "4008:7:11", @@ -2000,17 +2000,17 @@ "src": "4007:15:11" }, "returnParameters": { - "id": 1977, + "id": 2008, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1976, + "id": 2007, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1995, + "scope": 2026, "src": "4053:7:11", "stateVariable": false, "storageLocation": "default", @@ -2019,7 +2019,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1975, + "id": 2006, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4053:7:11", @@ -2034,7 +2034,7 @@ ], "src": "4052:9:11" }, - "scope": 2794, + "scope": 2825, "src": "3989:211:11", "stateMutability": "view", "virtual": false, @@ -2042,10 +2042,10 @@ }, { "baseFunctions": [ - 2873 + 2904 ], "body": { - "id": 2010, + "id": 2041, "nodeType": "Block", "src": "4330:94:11", "statements": [ @@ -2055,11 +2055,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2006, + "id": 2037, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1998, + "referencedDeclaration": 2029, "src": "4364:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2069,7 +2069,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 2007, + "id": 2038, "isConstant": false, "isLValue": false, "isPure": true, @@ -2098,32 +2098,32 @@ ], "expression": { "argumentTypes": null, - "id": 2004, + "id": 2035, "name": "_tokenOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1911, + "referencedDeclaration": 1942, "src": "4347:12:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage", "typeString": "struct EnumerableMap.UintToAddressMap storage ref" } }, - "id": 2005, + "id": 2036, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "get", "nodeType": "MemberAccess", - "referencedDeclaration": 3724, + "referencedDeclaration": 3755, "src": "4347:16:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$3550_storage_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_address_$bound_to$_t_struct$_UintToAddressMap_$3550_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$3581_storage_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_address_$bound_to$_t_struct$_UintToAddressMap_$3581_storage_ptr_$", "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" } }, - "id": 2008, + "id": 2039, "isConstant": false, "isLValue": false, "isPure": false, @@ -2138,44 +2138,44 @@ "typeString": "address" } }, - "functionReturnParameters": 2003, - "id": 2009, + "functionReturnParameters": 2034, + "id": 2040, "nodeType": "Return", "src": "4340:77:11" } ] }, "documentation": { - "id": 1996, + "id": 2027, "nodeType": "StructuredDocumentation", "src": "4206:46:11", "text": " @dev See {IERC721-ownerOf}." }, "functionSelector": "6352211e", - "id": 2011, + "id": 2042, "implemented": true, "kind": "function", "modifiers": [], "name": "ownerOf", "nodeType": "FunctionDefinition", "overrides": { - "id": 2000, + "id": 2031, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4303:8:11" }, "parameters": { - "id": 1999, + "id": 2030, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1998, + "id": 2029, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2011, + "scope": 2042, "src": "4274:15:11", "stateVariable": false, "storageLocation": "default", @@ -2184,7 +2184,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1997, + "id": 2028, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4274:7:11", @@ -2200,17 +2200,17 @@ "src": "4273:17:11" }, "returnParameters": { - "id": 2003, + "id": 2034, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2002, + "id": 2033, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2011, + "scope": 2042, "src": "4321:7:11", "stateVariable": false, "storageLocation": "default", @@ -2219,7 +2219,7 @@ "typeString": "address" }, "typeName": { - "id": 2001, + "id": 2032, "name": "address", "nodeType": "ElementaryTypeName", "src": "4321:7:11", @@ -2235,7 +2235,7 @@ ], "src": "4320:9:11" }, - "scope": 2794, + "scope": 2825, "src": "4257:167:11", "stateMutability": "view", "virtual": false, @@ -2243,71 +2243,71 @@ }, { "baseFunctions": [ - 2983 + 3014 ], "body": { - "id": 2020, + "id": 2051, "nodeType": "Block", "src": "4547:29:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 2018, + "id": 2049, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1923, + "referencedDeclaration": 1954, "src": "4564:5:11", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 2017, - "id": 2019, + "functionReturnParameters": 2048, + "id": 2050, "nodeType": "Return", "src": "4557:12:11" } ] }, "documentation": { - "id": 2012, + "id": 2043, "nodeType": "StructuredDocumentation", "src": "4430:51:11", "text": " @dev See {IERC721Metadata-name}." }, "functionSelector": "06fdde03", - "id": 2021, + "id": 2052, "implemented": true, "kind": "function", "modifiers": [], "name": "name", "nodeType": "FunctionDefinition", "overrides": { - "id": 2014, + "id": 2045, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4514:8:11" }, "parameters": { - "id": 2013, + "id": 2044, "nodeType": "ParameterList", "parameters": [], "src": "4499:2:11" }, "returnParameters": { - "id": 2017, + "id": 2048, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2016, + "id": 2047, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2021, + "scope": 2052, "src": "4532:13:11", "stateVariable": false, "storageLocation": "memory", @@ -2316,7 +2316,7 @@ "typeString": "string" }, "typeName": { - "id": 2015, + "id": 2046, "name": "string", "nodeType": "ElementaryTypeName", "src": "4532:6:11", @@ -2331,7 +2331,7 @@ ], "src": "4531:15:11" }, - "scope": 2794, + "scope": 2825, "src": "4486:90:11", "stateMutability": "view", "virtual": false, @@ -2339,71 +2339,71 @@ }, { "baseFunctions": [ - 2989 + 3020 ], "body": { - "id": 2030, + "id": 2061, "nodeType": "Block", "src": "4703:31:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 2028, + "id": 2059, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1925, + "referencedDeclaration": 1956, "src": "4720:7:11", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 2027, - "id": 2029, + "functionReturnParameters": 2058, + "id": 2060, "nodeType": "Return", "src": "4713:14:11" } ] }, "documentation": { - "id": 2022, + "id": 2053, "nodeType": "StructuredDocumentation", "src": "4582:53:11", "text": " @dev See {IERC721Metadata-symbol}." }, "functionSelector": "95d89b41", - "id": 2031, + "id": 2062, "implemented": true, "kind": "function", "modifiers": [], "name": "symbol", "nodeType": "FunctionDefinition", "overrides": { - "id": 2024, + "id": 2055, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4670:8:11" }, "parameters": { - "id": 2023, + "id": 2054, "nodeType": "ParameterList", "parameters": [], "src": "4655:2:11" }, "returnParameters": { - "id": 2027, + "id": 2058, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2026, + "id": 2057, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2031, + "scope": 2062, "src": "4688:13:11", "stateVariable": false, "storageLocation": "memory", @@ -2412,7 +2412,7 @@ "typeString": "string" }, "typeName": { - "id": 2025, + "id": 2056, "name": "string", "nodeType": "ElementaryTypeName", "src": "4688:6:11", @@ -2427,7 +2427,7 @@ ], "src": "4687:15:11" }, - "scope": 2794, + "scope": 2825, "src": "4640:94:11", "stateMutability": "view", "virtual": false, @@ -2435,10 +2435,10 @@ }, { "baseFunctions": [ - 2997 + 3028 ], "body": { - "id": 2093, + "id": 2124, "nodeType": "Block", "src": "4880:660:11", "statements": [ @@ -2451,11 +2451,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2042, + "id": 2073, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, + "referencedDeclaration": 2065, "src": "4906:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2470,18 +2470,18 @@ "typeString": "uint256" } ], - "id": 2041, + "id": 2072, "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2387, + "referencedDeclaration": 2418, "src": "4898:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 2043, + "id": 2074, "isConstant": false, "isLValue": false, "isPure": false, @@ -2499,7 +2499,7 @@ { "argumentTypes": null, "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 2044, + "id": 2075, "isConstant": false, "isLValue": false, "isPure": true, @@ -2526,7 +2526,7 @@ "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" } ], - "id": 2040, + "id": 2071, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2540,7 +2540,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2045, + "id": 2076, "isConstant": false, "isLValue": false, "isPure": false, @@ -2555,23 +2555,23 @@ "typeString": "tuple()" } }, - "id": 2046, + "id": 2077, "nodeType": "ExpressionStatement", "src": "4890:76:11" }, { "assignments": [ - 2048 + 2079 ], "declarations": [ { "constant": false, - "id": 2048, + "id": 2079, "mutability": "mutable", "name": "_tokenURI", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2093, + "scope": 2124, "src": "4977:23:11", "stateVariable": false, "storageLocation": "memory", @@ -2580,7 +2580,7 @@ "typeString": "string" }, "typeName": { - "id": 2047, + "id": 2078, "name": "string", "nodeType": "ElementaryTypeName", "src": "4977:6:11", @@ -2593,30 +2593,30 @@ "visibility": "internal" } ], - "id": 2052, + "id": 2083, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2049, + "id": 2080, "name": "_tokenURIs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1929, + "referencedDeclaration": 1960, "src": "5003:10:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", "typeString": "mapping(uint256 => string storage ref)" } }, - "id": 2051, + "id": 2082, "indexExpression": { "argumentTypes": null, - "id": 2050, + "id": 2081, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, + "referencedDeclaration": 2065, "src": "5014:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2644,7 +2644,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2059, + "id": 2090, "isConstant": false, "isLValue": false, "isPure": false, @@ -2656,11 +2656,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2055, + "id": 2086, "name": "_baseURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1931, + "referencedDeclaration": 1962, "src": "5101:8:11", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -2675,7 +2675,7 @@ "typeString": "string storage ref" } ], - "id": 2054, + "id": 2085, "isConstant": false, "isLValue": false, "isPure": true, @@ -2687,7 +2687,7 @@ "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 2053, + "id": 2084, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5095:5:11", @@ -2697,7 +2697,7 @@ } } }, - "id": 2056, + "id": 2087, "isConstant": false, "isLValue": false, "isPure": false, @@ -2712,7 +2712,7 @@ "typeString": "bytes storage pointer" } }, - "id": 2057, + "id": 2088, "isConstant": false, "isLValue": false, "isPure": false, @@ -2731,7 +2731,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2058, + "id": 2089, "isConstant": false, "isLValue": false, "isPure": true, @@ -2753,30 +2753,30 @@ } }, "falseBody": null, - "id": 2063, + "id": 2094, "nodeType": "IfStatement", "src": "5091:74:11", "trueBody": { - "id": 2062, + "id": 2093, "nodeType": "Block", "src": "5124:41:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 2060, + "id": 2091, "name": "_tokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2048, + "referencedDeclaration": 2079, "src": "5145:9:11", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "functionReturnParameters": 2039, - "id": 2061, + "functionReturnParameters": 2070, + "id": 2092, "nodeType": "Return", "src": "5138:16:11" } @@ -2790,7 +2790,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2070, + "id": 2101, "isConstant": false, "isLValue": false, "isPure": false, @@ -2802,11 +2802,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2066, + "id": 2097, "name": "_tokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2048, + "referencedDeclaration": 2079, "src": "5273:9:11", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -2821,7 +2821,7 @@ "typeString": "string memory" } ], - "id": 2065, + "id": 2096, "isConstant": false, "isLValue": false, "isPure": true, @@ -2833,7 +2833,7 @@ "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 2064, + "id": 2095, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5267:5:11", @@ -2843,7 +2843,7 @@ } } }, - "id": 2067, + "id": 2098, "isConstant": false, "isLValue": false, "isPure": false, @@ -2858,7 +2858,7 @@ "typeString": "bytes memory" } }, - "id": 2068, + "id": 2099, "isConstant": false, "isLValue": false, "isPure": false, @@ -2877,7 +2877,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2069, + "id": 2100, "isConstant": false, "isLValue": false, "isPure": true, @@ -2899,11 +2899,11 @@ } }, "falseBody": null, - "id": 2081, + "id": 2112, "nodeType": "IfStatement", "src": "5263:110:11", "trueBody": { - "id": 2080, + "id": 2111, "nodeType": "Block", "src": "5296:77:11", "statements": [ @@ -2916,11 +2916,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2075, + "id": 2106, "name": "_baseURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1931, + "referencedDeclaration": 1962, "src": "5341:8:11", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -2929,11 +2929,11 @@ }, { "argumentTypes": null, - "id": 2076, + "id": 2107, "name": "_tokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2048, + "referencedDeclaration": 2079, "src": "5351:9:11", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -2954,7 +2954,7 @@ ], "expression": { "argumentTypes": null, - "id": 2073, + "id": 2104, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -2965,7 +2965,7 @@ "typeString": "abi" } }, - "id": 2074, + "id": 2105, "isConstant": false, "isLValue": false, "isPure": true, @@ -2979,7 +2979,7 @@ "typeString": "function () pure returns (bytes memory)" } }, - "id": 2077, + "id": 2108, "isConstant": false, "isLValue": false, "isPure": false, @@ -3002,7 +3002,7 @@ "typeString": "bytes memory" } ], - "id": 2072, + "id": 2103, "isConstant": false, "isLValue": false, "isPure": true, @@ -3014,7 +3014,7 @@ "typeString": "type(string storage pointer)" }, "typeName": { - "id": 2071, + "id": 2102, "name": "string", "nodeType": "ElementaryTypeName", "src": "5317:6:11", @@ -3024,7 +3024,7 @@ } } }, - "id": 2078, + "id": 2109, "isConstant": false, "isLValue": false, "isPure": false, @@ -3039,8 +3039,8 @@ "typeString": "string memory" } }, - "functionReturnParameters": 2039, - "id": 2079, + "functionReturnParameters": 2070, + "id": 2110, "nodeType": "Return", "src": "5310:52:11" } @@ -3056,11 +3056,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2086, + "id": 2117, "name": "_baseURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1931, + "referencedDeclaration": 1962, "src": "5503:8:11", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -3074,32 +3074,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 2087, + "id": 2118, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, + "referencedDeclaration": 2065, "src": "5513:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2088, + "id": 2119, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "toString", "nodeType": "MemberAccess", - "referencedDeclaration": 4296, + "referencedDeclaration": 4327, "src": "5513:16:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (string memory)" } }, - "id": 2089, + "id": 2120, "isConstant": false, "isLValue": false, "isPure": false, @@ -3128,7 +3128,7 @@ ], "expression": { "argumentTypes": null, - "id": 2084, + "id": 2115, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -3139,7 +3139,7 @@ "typeString": "abi" } }, - "id": 2085, + "id": 2116, "isConstant": false, "isLValue": false, "isPure": true, @@ -3153,7 +3153,7 @@ "typeString": "function () pure returns (bytes memory)" } }, - "id": 2090, + "id": 2121, "isConstant": false, "isLValue": false, "isPure": false, @@ -3176,7 +3176,7 @@ "typeString": "bytes memory" } ], - "id": 2083, + "id": 2114, "isConstant": false, "isLValue": false, "isPure": true, @@ -3188,7 +3188,7 @@ "typeString": "type(string storage pointer)" }, "typeName": { - "id": 2082, + "id": 2113, "name": "string", "nodeType": "ElementaryTypeName", "src": "5479:6:11", @@ -3198,7 +3198,7 @@ } } }, - "id": 2091, + "id": 2122, "isConstant": false, "isLValue": false, "isPure": false, @@ -3213,44 +3213,44 @@ "typeString": "string memory" } }, - "functionReturnParameters": 2039, - "id": 2092, + "functionReturnParameters": 2070, + "id": 2123, "nodeType": "Return", "src": "5472:61:11" } ] }, "documentation": { - "id": 2032, + "id": 2063, "nodeType": "StructuredDocumentation", "src": "4740:55:11", "text": " @dev See {IERC721Metadata-tokenURI}." }, "functionSelector": "c87b56dd", - "id": 2094, + "id": 2125, "implemented": true, "kind": "function", "modifiers": [], "name": "tokenURI", "nodeType": "FunctionDefinition", "overrides": { - "id": 2036, + "id": 2067, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4847:8:11" }, "parameters": { - "id": 2035, + "id": 2066, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2034, + "id": 2065, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2094, + "scope": 2125, "src": "4818:15:11", "stateVariable": false, "storageLocation": "default", @@ -3259,7 +3259,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2033, + "id": 2064, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4818:7:11", @@ -3275,17 +3275,17 @@ "src": "4817:17:11" }, "returnParameters": { - "id": 2039, + "id": 2070, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2038, + "id": 2069, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2094, + "scope": 2125, "src": "4865:13:11", "stateVariable": false, "storageLocation": "memory", @@ -3294,7 +3294,7 @@ "typeString": "string" }, "typeName": { - "id": 2037, + "id": 2068, "name": "string", "nodeType": "ElementaryTypeName", "src": "4865:6:11", @@ -3309,7 +3309,7 @@ ], "src": "4864:15:11" }, - "scope": 2794, + "scope": 2825, "src": "4800:740:11", "stateMutability": "view", "virtual": false, @@ -3317,39 +3317,39 @@ }, { "body": { - "id": 2102, + "id": 2133, "nodeType": "Block", "src": "5827:32:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 2100, + "id": 2131, "name": "_baseURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1931, + "referencedDeclaration": 1962, "src": "5844:8:11", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 2099, - "id": 2101, + "functionReturnParameters": 2130, + "id": 2132, "nodeType": "Return", "src": "5837:15:11" } ] }, "documentation": { - "id": 2095, + "id": 2126, "nodeType": "StructuredDocumentation", "src": "5546:221:11", "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." }, "functionSelector": "6c0360eb", - "id": 2103, + "id": 2134, "implemented": true, "kind": "function", "modifiers": [], @@ -3357,23 +3357,23 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2096, + "id": 2127, "nodeType": "ParameterList", "parameters": [], "src": "5788:2:11" }, "returnParameters": { - "id": 2099, + "id": 2130, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2098, + "id": 2129, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2103, + "scope": 2134, "src": "5812:13:11", "stateVariable": false, "storageLocation": "memory", @@ -3382,7 +3382,7 @@ "typeString": "string" }, "typeName": { - "id": 2097, + "id": 2128, "name": "string", "nodeType": "ElementaryTypeName", "src": "5812:6:11", @@ -3397,7 +3397,7 @@ ], "src": "5811:15:11" }, - "scope": 2794, + "scope": 2825, "src": "5772:87:11", "stateMutability": "view", "virtual": false, @@ -3405,10 +3405,10 @@ }, { "baseFunctions": [ - 2962 + 2993 ], "body": { - "id": 2121, + "id": 2152, "nodeType": "Block", "src": "6036:54:11", "statements": [ @@ -3418,11 +3418,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2118, + "id": 2149, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2108, + "referencedDeclaration": 2139, "src": "6077:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3441,25 +3441,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2114, + "id": 2145, "name": "_holderTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1909, + "referencedDeclaration": 1940, "src": "6053:13:11", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4025_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4056_storage_$", "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" } }, - "id": 2116, + "id": 2147, "indexExpression": { "argumentTypes": null, - "id": 2115, + "id": 2146, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2106, + "referencedDeclaration": 2137, "src": "6067:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3473,25 +3473,25 @@ "nodeType": "IndexAccess", "src": "6053:20:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage", + "typeIdentifier": "t_struct$_UintSet_$4056_storage", "typeString": "struct EnumerableSet.UintSet storage ref" } }, - "id": 2117, + "id": 2148, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "at", "nodeType": "MemberAccess", - "referencedDeclaration": 4119, + "referencedDeclaration": 4150, "src": "6053:23:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$4025_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$4025_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$4056_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$4056_storage_ptr_$", "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" } }, - "id": 2119, + "id": 2150, "isConstant": false, "isLValue": false, "isPure": false, @@ -3506,44 +3506,44 @@ "typeString": "uint256" } }, - "functionReturnParameters": 2113, - "id": 2120, + "functionReturnParameters": 2144, + "id": 2151, "nodeType": "Return", "src": "6046:37:11" } ] }, "documentation": { - "id": 2104, + "id": 2135, "nodeType": "StructuredDocumentation", "src": "5865:68:11", "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." }, "functionSelector": "2f745c59", - "id": 2122, + "id": 2153, "implemented": true, "kind": "function", "modifiers": [], "name": "tokenOfOwnerByIndex", "nodeType": "FunctionDefinition", "overrides": { - "id": 2110, + "id": 2141, "nodeType": "OverrideSpecifier", "overrides": [], "src": "6009:8:11" }, "parameters": { - "id": 2109, + "id": 2140, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2106, + "id": 2137, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2122, + "scope": 2153, "src": "5967:13:11", "stateVariable": false, "storageLocation": "default", @@ -3552,7 +3552,7 @@ "typeString": "address" }, "typeName": { - "id": 2105, + "id": 2136, "name": "address", "nodeType": "ElementaryTypeName", "src": "5967:7:11", @@ -3567,12 +3567,12 @@ }, { "constant": false, - "id": 2108, + "id": 2139, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2122, + "scope": 2153, "src": "5982:13:11", "stateVariable": false, "storageLocation": "default", @@ -3581,7 +3581,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2107, + "id": 2138, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5982:7:11", @@ -3597,17 +3597,17 @@ "src": "5966:30:11" }, "returnParameters": { - "id": 2113, + "id": 2144, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2112, + "id": 2143, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2122, + "scope": 2153, "src": "6027:7:11", "stateVariable": false, "storageLocation": "default", @@ -3616,7 +3616,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2111, + "id": 2142, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6027:7:11", @@ -3631,7 +3631,7 @@ ], "src": "6026:9:11" }, - "scope": 2794, + "scope": 2825, "src": "5938:152:11", "stateMutability": "view", "virtual": false, @@ -3639,10 +3639,10 @@ }, { "baseFunctions": [ - 2952 + 2983 ], "body": { - "id": 2133, + "id": 2164, "nodeType": "Block", "src": "6223:138:11", "statements": [ @@ -3654,32 +3654,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 2129, + "id": 2160, "name": "_tokenOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1911, + "referencedDeclaration": 1942, "src": "6333:12:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage", "typeString": "struct EnumerableMap.UintToAddressMap storage ref" } }, - "id": 2130, + "id": 2161, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": 3633, + "referencedDeclaration": 3664, "src": "6333:19:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$3550_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintToAddressMap_$3550_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$3581_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintToAddressMap_$3581_storage_ptr_$", "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" } }, - "id": 2131, + "id": 2162, "isConstant": false, "isLValue": false, "isPure": false, @@ -3694,50 +3694,50 @@ "typeString": "uint256" } }, - "functionReturnParameters": 2128, - "id": 2132, + "functionReturnParameters": 2159, + "id": 2163, "nodeType": "Return", "src": "6326:28:11" } ] }, "documentation": { - "id": 2123, + "id": 2154, "nodeType": "StructuredDocumentation", "src": "6096:60:11", "text": " @dev See {IERC721Enumerable-totalSupply}." }, "functionSelector": "18160ddd", - "id": 2134, + "id": 2165, "implemented": true, "kind": "function", "modifiers": [], "name": "totalSupply", "nodeType": "FunctionDefinition", "overrides": { - "id": 2125, + "id": 2156, "nodeType": "OverrideSpecifier", "overrides": [], "src": "6196:8:11" }, "parameters": { - "id": 2124, + "id": 2155, "nodeType": "ParameterList", "parameters": [], "src": "6181:2:11" }, "returnParameters": { - "id": 2128, + "id": 2159, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2127, + "id": 2158, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2134, + "scope": 2165, "src": "6214:7:11", "stateVariable": false, "storageLocation": "default", @@ -3746,7 +3746,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2126, + "id": 2157, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6214:7:11", @@ -3761,7 +3761,7 @@ ], "src": "6213:9:11" }, - "scope": 2794, + "scope": 2825, "src": "6161:200:11", "stateMutability": "view", "virtual": false, @@ -3769,27 +3769,27 @@ }, { "baseFunctions": [ - 2970 + 3001 ], "body": { - "id": 2152, + "id": 2183, "nodeType": "Block", "src": "6509:85:11", "statements": [ { "assignments": [ - 2144, + 2175, null ], "declarations": [ { "constant": false, - "id": 2144, + "id": 2175, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2152, + "scope": 2183, "src": "6520:15:11", "stateVariable": false, "storageLocation": "default", @@ -3798,7 +3798,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2143, + "id": 2174, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6520:7:11", @@ -3812,17 +3812,17 @@ }, null ], - "id": 2149, + "id": 2180, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2147, + "id": 2178, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, + "referencedDeclaration": 2168, "src": "6557:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3839,32 +3839,32 @@ ], "expression": { "argumentTypes": null, - "id": 2145, + "id": 2176, "name": "_tokenOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1911, + "referencedDeclaration": 1942, "src": "6541:12:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage", "typeString": "struct EnumerableMap.UintToAddressMap storage ref" } }, - "id": 2146, + "id": 2177, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "at", "nodeType": "MemberAccess", - "referencedDeclaration": 3669, + "referencedDeclaration": 3700, "src": "6541:15:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$3550_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_address_$bound_to$_t_struct$_UintToAddressMap_$3550_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$3581_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_address_$bound_to$_t_struct$_UintToAddressMap_$3581_storage_ptr_$", "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" } }, - "id": 2148, + "id": 2179, "isConstant": false, "isLValue": false, "isPure": false, @@ -3885,55 +3885,55 @@ { "expression": { "argumentTypes": null, - "id": 2150, + "id": 2181, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2144, + "referencedDeclaration": 2175, "src": "6580:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2142, - "id": 2151, + "functionReturnParameters": 2173, + "id": 2182, "nodeType": "Return", "src": "6573:14:11" } ] }, "documentation": { - "id": 2135, + "id": 2166, "nodeType": "StructuredDocumentation", "src": "6367:61:11", "text": " @dev See {IERC721Enumerable-tokenByIndex}." }, "functionSelector": "4f6ccce7", - "id": 2153, + "id": 2184, "implemented": true, "kind": "function", "modifiers": [], "name": "tokenByIndex", "nodeType": "FunctionDefinition", "overrides": { - "id": 2139, + "id": 2170, "nodeType": "OverrideSpecifier", "overrides": [], "src": "6482:8:11" }, "parameters": { - "id": 2138, + "id": 2169, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2137, + "id": 2168, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2153, + "scope": 2184, "src": "6455:13:11", "stateVariable": false, "storageLocation": "default", @@ -3942,7 +3942,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2136, + "id": 2167, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6455:7:11", @@ -3958,17 +3958,17 @@ "src": "6454:15:11" }, "returnParameters": { - "id": 2142, + "id": 2173, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2141, + "id": 2172, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2153, + "scope": 2184, "src": "6500:7:11", "stateVariable": false, "storageLocation": "default", @@ -3977,7 +3977,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2140, + "id": 2171, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6500:7:11", @@ -3992,7 +3992,7 @@ ], "src": "6499:9:11" }, - "scope": 2794, + "scope": 2825, "src": "6433:161:11", "stateMutability": "view", "virtual": false, @@ -4000,26 +4000,26 @@ }, { "baseFunctions": [ - 2901 + 2932 ], "body": { - "id": 2194, + "id": 2225, "nodeType": "Block", "src": "6721:311:11", "statements": [ { "assignments": [ - 2163 + 2194 ], "declarations": [ { "constant": false, - "id": 2163, + "id": 2194, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2194, + "scope": 2225, "src": "6731:13:11", "stateVariable": false, "storageLocation": "default", @@ -4028,7 +4028,7 @@ "typeString": "address" }, "typeName": { - "id": 2162, + "id": 2193, "name": "address", "nodeType": "ElementaryTypeName", "src": "6731:7:11", @@ -4042,17 +4042,17 @@ "visibility": "internal" } ], - "id": 2167, + "id": 2198, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2165, + "id": 2196, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2158, + "referencedDeclaration": 2189, "src": "6755:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4067,18 +4067,18 @@ "typeString": "uint256" } ], - "id": 2164, + "id": 2195, "name": "ownerOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2011, + "referencedDeclaration": 2042, "src": "6747:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, - "id": 2166, + "id": 2197, "isConstant": false, "isLValue": false, "isPure": false, @@ -4106,18 +4106,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2171, + "id": 2202, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2169, + "id": 2200, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2156, + "referencedDeclaration": 2187, "src": "6781:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4128,11 +4128,11 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2170, + "id": 2201, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2163, + "referencedDeclaration": 2194, "src": "6787:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4148,7 +4148,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 2172, + "id": 2203, "isConstant": false, "isLValue": false, "isPure": true, @@ -4175,7 +4175,7 @@ "typeString": "literal_string \"ERC721: approval to current owner\"" } ], - "id": 2168, + "id": 2199, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4189,7 +4189,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2173, + "id": 2204, "isConstant": false, "isLValue": false, "isPure": false, @@ -4204,7 +4204,7 @@ "typeString": "tuple()" } }, - "id": 2174, + "id": 2205, "nodeType": "ExpressionStatement", "src": "6773:57:11" }, @@ -4218,7 +4218,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2185, + "id": 2216, "isConstant": false, "isLValue": false, "isPure": false, @@ -4229,7 +4229,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2179, + "id": 2210, "isConstant": false, "isLValue": false, "isPure": false, @@ -4239,18 +4239,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2176, + "id": 2207, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "6849:10:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 2177, + "id": 2208, "isConstant": false, "isLValue": false, "isPure": false, @@ -4269,11 +4269,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2178, + "id": 2209, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2163, + "referencedDeclaration": 2194, "src": "6865:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4293,11 +4293,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2181, + "id": 2212, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2163, + "referencedDeclaration": 2194, "src": "6891:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4309,18 +4309,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2182, + "id": 2213, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "6898:10:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 2183, + "id": 2214, "isConstant": false, "isLValue": false, "isPure": false, @@ -4347,18 +4347,18 @@ "typeString": "address payable" } ], - "id": 2180, + "id": 2211, "name": "isApprovedForAll", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, + "referencedDeclaration": 2299, "src": "6874:16:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) view returns (bool)" } }, - "id": 2184, + "id": 2215, "isConstant": false, "isLValue": false, "isPure": false, @@ -4382,7 +4382,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 2186, + "id": 2217, "isConstant": false, "isLValue": false, "isPure": true, @@ -4409,7 +4409,7 @@ "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" } ], - "id": 2175, + "id": 2206, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4423,7 +4423,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2187, + "id": 2218, "isConstant": false, "isLValue": false, "isPure": false, @@ -4438,7 +4438,7 @@ "typeString": "tuple()" } }, - "id": 2188, + "id": 2219, "nodeType": "ExpressionStatement", "src": "6841:152:11" }, @@ -4448,11 +4448,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2190, + "id": 2221, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2156, + "referencedDeclaration": 2187, "src": "7013:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4461,11 +4461,11 @@ }, { "argumentTypes": null, - "id": 2191, + "id": 2222, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2158, + "referencedDeclaration": 2189, "src": "7017:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4484,18 +4484,18 @@ "typeString": "uint256" } ], - "id": 2189, + "id": 2220, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2782, + "referencedDeclaration": 2813, "src": "7004:8:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 2192, + "id": 2223, "isConstant": false, "isLValue": false, "isPure": false, @@ -4510,43 +4510,43 @@ "typeString": "tuple()" } }, - "id": 2193, + "id": 2224, "nodeType": "ExpressionStatement", "src": "7004:21:11" } ] }, "documentation": { - "id": 2154, + "id": 2185, "nodeType": "StructuredDocumentation", "src": "6600:46:11", "text": " @dev See {IERC721-approve}." }, "functionSelector": "095ea7b3", - "id": 2195, + "id": 2226, "implemented": true, "kind": "function", "modifiers": [], "name": "approve", "nodeType": "FunctionDefinition", "overrides": { - "id": 2160, + "id": 2191, "nodeType": "OverrideSpecifier", "overrides": [], "src": "6712:8:11" }, "parameters": { - "id": 2159, + "id": 2190, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2156, + "id": 2187, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2195, + "scope": 2226, "src": "6668:10:11", "stateVariable": false, "storageLocation": "default", @@ -4555,7 +4555,7 @@ "typeString": "address" }, "typeName": { - "id": 2155, + "id": 2186, "name": "address", "nodeType": "ElementaryTypeName", "src": "6668:7:11", @@ -4570,12 +4570,12 @@ }, { "constant": false, - "id": 2158, + "id": 2189, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2195, + "scope": 2226, "src": "6680:15:11", "stateVariable": false, "storageLocation": "default", @@ -4584,7 +4584,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2157, + "id": 2188, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6680:7:11", @@ -4600,12 +4600,12 @@ "src": "6667:29:11" }, "returnParameters": { - "id": 2161, + "id": 2192, "nodeType": "ParameterList", "parameters": [], "src": "6721:0:11" }, - "scope": 2794, + "scope": 2825, "src": "6651:381:11", "stateMutability": "nonpayable", "virtual": true, @@ -4613,10 +4613,10 @@ }, { "baseFunctions": [ - 2909 + 2940 ], "body": { - "id": 2215, + "id": 2246, "nodeType": "Block", "src": "7170:132:11", "statements": [ @@ -4629,11 +4629,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2206, + "id": 2237, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2198, + "referencedDeclaration": 2229, "src": "7196:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4648,18 +4648,18 @@ "typeString": "uint256" } ], - "id": 2205, + "id": 2236, "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2387, + "referencedDeclaration": 2418, "src": "7188:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 2207, + "id": 2238, "isConstant": false, "isLValue": false, "isPure": false, @@ -4677,7 +4677,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 2208, + "id": 2239, "isConstant": false, "isLValue": false, "isPure": true, @@ -4704,7 +4704,7 @@ "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" } ], - "id": 2204, + "id": 2235, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4718,7 +4718,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2209, + "id": 2240, "isConstant": false, "isLValue": false, "isPure": false, @@ -4733,7 +4733,7 @@ "typeString": "tuple()" } }, - "id": 2210, + "id": 2241, "nodeType": "ExpressionStatement", "src": "7180:73:11" }, @@ -4742,25 +4742,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2211, + "id": 2242, "name": "_tokenApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1915, + "referencedDeclaration": 1946, "src": "7271:15:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, - "id": 2213, + "id": 2244, "indexExpression": { "argumentTypes": null, - "id": 2212, + "id": 2243, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2198, + "referencedDeclaration": 2229, "src": "7287:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4778,44 +4778,44 @@ "typeString": "address" } }, - "functionReturnParameters": 2203, - "id": 2214, + "functionReturnParameters": 2234, + "id": 2245, "nodeType": "Return", "src": "7264:31:11" } ] }, "documentation": { - "id": 2196, + "id": 2227, "nodeType": "StructuredDocumentation", "src": "7038:50:11", "text": " @dev See {IERC721-getApproved}." }, "functionSelector": "081812fc", - "id": 2216, + "id": 2247, "implemented": true, "kind": "function", "modifiers": [], "name": "getApproved", "nodeType": "FunctionDefinition", "overrides": { - "id": 2200, + "id": 2231, "nodeType": "OverrideSpecifier", "overrides": [], "src": "7143:8:11" }, "parameters": { - "id": 2199, + "id": 2230, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2198, + "id": 2229, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2216, + "scope": 2247, "src": "7114:15:11", "stateVariable": false, "storageLocation": "default", @@ -4824,7 +4824,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2197, + "id": 2228, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7114:7:11", @@ -4840,17 +4840,17 @@ "src": "7113:17:11" }, "returnParameters": { - "id": 2203, + "id": 2234, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2202, + "id": 2233, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2216, + "scope": 2247, "src": "7161:7:11", "stateVariable": false, "storageLocation": "default", @@ -4859,7 +4859,7 @@ "typeString": "address" }, "typeName": { - "id": 2201, + "id": 2232, "name": "address", "nodeType": "ElementaryTypeName", "src": "7161:7:11", @@ -4875,7 +4875,7 @@ ], "src": "7160:9:11" }, - "scope": 2794, + "scope": 2825, "src": "7093:209:11", "stateMutability": "view", "virtual": false, @@ -4883,10 +4883,10 @@ }, { "baseFunctions": [ - 2917 + 2948 ], "body": { - "id": 2249, + "id": 2280, "nodeType": "Block", "src": "7453:206:11", "statements": [ @@ -4900,18 +4900,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2229, + "id": 2260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2226, + "id": 2257, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2219, + "referencedDeclaration": 2250, "src": "7471:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4925,18 +4925,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2227, + "id": 2258, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "7483:10:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 2228, + "id": 2259, "isConstant": false, "isLValue": false, "isPure": false, @@ -4960,7 +4960,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 2230, + "id": 2261, "isConstant": false, "isLValue": false, "isPure": true, @@ -4987,7 +4987,7 @@ "typeString": "literal_string \"ERC721: approve to caller\"" } ], - "id": 2225, + "id": 2256, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5001,7 +5001,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2231, + "id": 2262, "isConstant": false, "isLValue": false, "isPure": false, @@ -5016,14 +5016,14 @@ "typeString": "tuple()" } }, - "id": 2232, + "id": 2263, "nodeType": "ExpressionStatement", "src": "7463:62:11" }, { "expression": { "argumentTypes": null, - "id": 2240, + "id": 2271, "isConstant": false, "isLValue": false, "isPure": false, @@ -5034,35 +5034,35 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2233, + "id": 2264, "name": "_operatorApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1921, + "referencedDeclaration": 1952, "src": "7536:18:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, - "id": 2237, + "id": 2268, "indexExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 2234, + "id": 2265, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "7555:10:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 2235, + "id": 2266, "isConstant": false, "isLValue": false, "isPure": false, @@ -5088,14 +5088,14 @@ "typeString": "mapping(address => bool)" } }, - "id": 2238, + "id": 2269, "indexExpression": { "argumentTypes": null, - "id": 2236, + "id": 2267, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2219, + "referencedDeclaration": 2250, "src": "7569:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5117,11 +5117,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2239, + "id": 2270, "name": "approved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2221, + "referencedDeclaration": 2252, "src": "7581:8:11", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5134,7 +5134,7 @@ "typeString": "bool" } }, - "id": 2241, + "id": 2272, "nodeType": "ExpressionStatement", "src": "7536:53:11" }, @@ -5147,18 +5147,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2243, + "id": 2274, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "7619:10:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 2244, + "id": 2275, "isConstant": false, "isLValue": false, "isPure": false, @@ -5175,11 +5175,11 @@ }, { "argumentTypes": null, - "id": 2245, + "id": 2276, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2219, + "referencedDeclaration": 2250, "src": "7633:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5188,11 +5188,11 @@ }, { "argumentTypes": null, - "id": 2246, + "id": 2277, "name": "approved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2221, + "referencedDeclaration": 2252, "src": "7643:8:11", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5215,18 +5215,18 @@ "typeString": "bool" } ], - "id": 2242, + "id": 2273, "name": "ApprovalForAll", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2857, + "referencedDeclaration": 2888, "src": "7604:14:11", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", "typeString": "function (address,address,bool)" } }, - "id": 2247, + "id": 2278, "isConstant": false, "isLValue": false, "isPure": false, @@ -5241,43 +5241,43 @@ "typeString": "tuple()" } }, - "id": 2248, + "id": 2279, "nodeType": "EmitStatement", "src": "7599:53:11" } ] }, "documentation": { - "id": 2217, + "id": 2248, "nodeType": "StructuredDocumentation", "src": "7308:56:11", "text": " @dev See {IERC721-setApprovalForAll}." }, "functionSelector": "a22cb465", - "id": 2250, + "id": 2281, "implemented": true, "kind": "function", "modifiers": [], "name": "setApprovalForAll", "nodeType": "FunctionDefinition", "overrides": { - "id": 2223, + "id": 2254, "nodeType": "OverrideSpecifier", "overrides": [], "src": "7444:8:11" }, "parameters": { - "id": 2222, + "id": 2253, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2219, + "id": 2250, "mutability": "mutable", "name": "operator", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2250, + "scope": 2281, "src": "7396:16:11", "stateVariable": false, "storageLocation": "default", @@ -5286,7 +5286,7 @@ "typeString": "address" }, "typeName": { - "id": 2218, + "id": 2249, "name": "address", "nodeType": "ElementaryTypeName", "src": "7396:7:11", @@ -5301,12 +5301,12 @@ }, { "constant": false, - "id": 2221, + "id": 2252, "mutability": "mutable", "name": "approved", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2250, + "scope": 2281, "src": "7414:13:11", "stateVariable": false, "storageLocation": "default", @@ -5315,7 +5315,7 @@ "typeString": "bool" }, "typeName": { - "id": 2220, + "id": 2251, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7414:4:11", @@ -5331,12 +5331,12 @@ "src": "7395:33:11" }, "returnParameters": { - "id": 2224, + "id": 2255, "nodeType": "ParameterList", "parameters": [], "src": "7453:0:11" }, - "scope": 2794, + "scope": 2825, "src": "7369:290:11", "stateMutability": "nonpayable", "virtual": true, @@ -5344,10 +5344,10 @@ }, { "baseFunctions": [ - 2927 + 2958 ], "body": { - "id": 2267, + "id": 2298, "nodeType": "Block", "src": "7820:59:11", "statements": [ @@ -5358,25 +5358,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2261, + "id": 2292, "name": "_operatorApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1921, + "referencedDeclaration": 1952, "src": "7837:18:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, - "id": 2263, + "id": 2294, "indexExpression": { "argumentTypes": null, - "id": 2262, + "id": 2293, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2253, + "referencedDeclaration": 2284, "src": "7856:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5394,14 +5394,14 @@ "typeString": "mapping(address => bool)" } }, - "id": 2265, + "id": 2296, "indexExpression": { "argumentTypes": null, - "id": 2264, + "id": 2295, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2255, + "referencedDeclaration": 2286, "src": "7863:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5419,44 +5419,44 @@ "typeString": "bool" } }, - "functionReturnParameters": 2260, - "id": 2266, + "functionReturnParameters": 2291, + "id": 2297, "nodeType": "Return", "src": "7830:42:11" } ] }, "documentation": { - "id": 2251, + "id": 2282, "nodeType": "StructuredDocumentation", "src": "7665:55:11", "text": " @dev See {IERC721-isApprovedForAll}." }, "functionSelector": "e985e9c5", - "id": 2268, + "id": 2299, "implemented": true, "kind": "function", "modifiers": [], "name": "isApprovedForAll", "nodeType": "FunctionDefinition", "overrides": { - "id": 2257, + "id": 2288, "nodeType": "OverrideSpecifier", "overrides": [], "src": "7796:8:11" }, "parameters": { - "id": 2256, + "id": 2287, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2253, + "id": 2284, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2268, + "scope": 2299, "src": "7751:13:11", "stateVariable": false, "storageLocation": "default", @@ -5465,7 +5465,7 @@ "typeString": "address" }, "typeName": { - "id": 2252, + "id": 2283, "name": "address", "nodeType": "ElementaryTypeName", "src": "7751:7:11", @@ -5480,12 +5480,12 @@ }, { "constant": false, - "id": 2255, + "id": 2286, "mutability": "mutable", "name": "operator", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2268, + "scope": 2299, "src": "7766:16:11", "stateVariable": false, "storageLocation": "default", @@ -5494,7 +5494,7 @@ "typeString": "address" }, "typeName": { - "id": 2254, + "id": 2285, "name": "address", "nodeType": "ElementaryTypeName", "src": "7766:7:11", @@ -5511,17 +5511,17 @@ "src": "7750:33:11" }, "returnParameters": { - "id": 2260, + "id": 2291, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2259, + "id": 2290, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2268, + "scope": 2299, "src": "7814:4:11", "stateVariable": false, "storageLocation": "default", @@ -5530,7 +5530,7 @@ "typeString": "bool" }, "typeName": { - "id": 2258, + "id": 2289, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7814:4:11", @@ -5545,7 +5545,7 @@ ], "src": "7813:6:11" }, - "scope": 2794, + "scope": 2825, "src": "7725:154:11", "stateMutability": "view", "virtual": false, @@ -5553,10 +5553,10 @@ }, { "baseFunctions": [ - 2893 + 2924 ], "body": { - "id": 2294, + "id": 2325, "nodeType": "Block", "src": "8030:211:11", "statements": [ @@ -5572,18 +5572,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2281, + "id": 2312, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "8119:10:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 2282, + "id": 2313, "isConstant": false, "isLValue": false, "isPure": false, @@ -5600,11 +5600,11 @@ }, { "argumentTypes": null, - "id": 2283, + "id": 2314, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2275, + "referencedDeclaration": 2306, "src": "8133:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5623,18 +5623,18 @@ "typeString": "uint256" } ], - "id": 2280, + "id": 2311, "name": "_isApprovedOrOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2427, + "referencedDeclaration": 2458, "src": "8100:18:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) view returns (bool)" } }, - "id": 2284, + "id": 2315, "isConstant": false, "isLValue": false, "isPure": false, @@ -5652,7 +5652,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 2285, + "id": 2316, "isConstant": false, "isLValue": false, "isPure": true, @@ -5679,7 +5679,7 @@ "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" } ], - "id": 2279, + "id": 2310, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5693,7 +5693,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2286, + "id": 2317, "isConstant": false, "isLValue": false, "isPure": false, @@ -5708,7 +5708,7 @@ "typeString": "tuple()" } }, - "id": 2287, + "id": 2318, "nodeType": "ExpressionStatement", "src": "8092:103:11" }, @@ -5718,11 +5718,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2289, + "id": 2320, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2271, + "referencedDeclaration": 2302, "src": "8216:4:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5731,11 +5731,11 @@ }, { "argumentTypes": null, - "id": 2290, + "id": 2321, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2273, + "referencedDeclaration": 2304, "src": "8222:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5744,11 +5744,11 @@ }, { "argumentTypes": null, - "id": 2291, + "id": 2322, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2275, + "referencedDeclaration": 2306, "src": "8226:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5771,18 +5771,18 @@ "typeString": "uint256" } ], - "id": 2288, + "id": 2319, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2669, + "referencedDeclaration": 2700, "src": "8206:9:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2292, + "id": 2323, "isConstant": false, "isLValue": false, "isPure": false, @@ -5797,43 +5797,43 @@ "typeString": "tuple()" } }, - "id": 2293, + "id": 2324, "nodeType": "ExpressionStatement", "src": "8206:28:11" } ] }, "documentation": { - "id": 2269, + "id": 2300, "nodeType": "StructuredDocumentation", "src": "7885:51:11", "text": " @dev See {IERC721-transferFrom}." }, "functionSelector": "23b872dd", - "id": 2295, + "id": 2326, "implemented": true, "kind": "function", "modifiers": [], "name": "transferFrom", "nodeType": "FunctionDefinition", "overrides": { - "id": 2277, + "id": 2308, "nodeType": "OverrideSpecifier", "overrides": [], "src": "8021:8:11" }, "parameters": { - "id": 2276, + "id": 2307, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2271, + "id": 2302, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2295, + "scope": 2326, "src": "7963:12:11", "stateVariable": false, "storageLocation": "default", @@ -5842,7 +5842,7 @@ "typeString": "address" }, "typeName": { - "id": 2270, + "id": 2301, "name": "address", "nodeType": "ElementaryTypeName", "src": "7963:7:11", @@ -5857,12 +5857,12 @@ }, { "constant": false, - "id": 2273, + "id": 2304, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2295, + "scope": 2326, "src": "7977:10:11", "stateVariable": false, "storageLocation": "default", @@ -5871,7 +5871,7 @@ "typeString": "address" }, "typeName": { - "id": 2272, + "id": 2303, "name": "address", "nodeType": "ElementaryTypeName", "src": "7977:7:11", @@ -5886,12 +5886,12 @@ }, { "constant": false, - "id": 2275, + "id": 2306, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2295, + "scope": 2326, "src": "7989:15:11", "stateVariable": false, "storageLocation": "default", @@ -5900,7 +5900,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2274, + "id": 2305, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7989:7:11", @@ -5916,12 +5916,12 @@ "src": "7962:43:11" }, "returnParameters": { - "id": 2278, + "id": 2309, "nodeType": "ParameterList", "parameters": [], "src": "8030:0:11" }, - "scope": 2794, + "scope": 2825, "src": "7941:300:11", "stateMutability": "nonpayable", "virtual": true, @@ -5929,10 +5929,10 @@ }, { "baseFunctions": [ - 2883 + 2914 ], "body": { - "id": 2313, + "id": 2344, "nodeType": "Block", "src": "8400:56:11", "statements": [ @@ -5942,11 +5942,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2307, + "id": 2338, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2298, + "referencedDeclaration": 2329, "src": "8427:4:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5955,11 +5955,11 @@ }, { "argumentTypes": null, - "id": 2308, + "id": 2339, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2300, + "referencedDeclaration": 2331, "src": "8433:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5968,11 +5968,11 @@ }, { "argumentTypes": null, - "id": 2309, + "id": 2340, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2302, + "referencedDeclaration": 2333, "src": "8437:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5982,7 +5982,7 @@ { "argumentTypes": null, "hexValue": "", - "id": 2310, + "id": 2341, "isConstant": false, "isLValue": false, "isPure": true, @@ -6017,21 +6017,21 @@ "typeString": "literal_string \"\"" } ], - "id": 2306, + "id": 2337, "name": "safeTransferFrom", "nodeType": "Identifier", "overloadedDeclarations": [ - 2314, - 2344 + 2345, + 2375 ], - "referencedDeclaration": 2344, + "referencedDeclaration": 2375, "src": "8410:16:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256,bytes memory)" } }, - "id": 2311, + "id": 2342, "isConstant": false, "isLValue": false, "isPure": false, @@ -6046,43 +6046,43 @@ "typeString": "tuple()" } }, - "id": 2312, + "id": 2343, "nodeType": "ExpressionStatement", "src": "8410:39:11" } ] }, "documentation": { - "id": 2296, + "id": 2327, "nodeType": "StructuredDocumentation", "src": "8247:55:11", "text": " @dev See {IERC721-safeTransferFrom}." }, "functionSelector": "42842e0e", - "id": 2314, + "id": 2345, "implemented": true, "kind": "function", "modifiers": [], "name": "safeTransferFrom", "nodeType": "FunctionDefinition", "overrides": { - "id": 2304, + "id": 2335, "nodeType": "OverrideSpecifier", "overrides": [], "src": "8391:8:11" }, "parameters": { - "id": 2303, + "id": 2334, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2298, + "id": 2329, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2314, + "scope": 2345, "src": "8333:12:11", "stateVariable": false, "storageLocation": "default", @@ -6091,7 +6091,7 @@ "typeString": "address" }, "typeName": { - "id": 2297, + "id": 2328, "name": "address", "nodeType": "ElementaryTypeName", "src": "8333:7:11", @@ -6106,12 +6106,12 @@ }, { "constant": false, - "id": 2300, + "id": 2331, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2314, + "scope": 2345, "src": "8347:10:11", "stateVariable": false, "storageLocation": "default", @@ -6120,7 +6120,7 @@ "typeString": "address" }, "typeName": { - "id": 2299, + "id": 2330, "name": "address", "nodeType": "ElementaryTypeName", "src": "8347:7:11", @@ -6135,12 +6135,12 @@ }, { "constant": false, - "id": 2302, + "id": 2333, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2314, + "scope": 2345, "src": "8359:15:11", "stateVariable": false, "storageLocation": "default", @@ -6149,7 +6149,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2301, + "id": 2332, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8359:7:11", @@ -6165,12 +6165,12 @@ "src": "8332:43:11" }, "returnParameters": { - "id": 2305, + "id": 2336, "nodeType": "ParameterList", "parameters": [], "src": "8400:0:11" }, - "scope": 2794, + "scope": 2825, "src": "8307:149:11", "stateMutability": "nonpayable", "virtual": true, @@ -6178,10 +6178,10 @@ }, { "baseFunctions": [ - 2939 + 2970 ], "body": { - "id": 2343, + "id": 2374, "nodeType": "Block", "src": "8635:169:11", "statements": [ @@ -6197,18 +6197,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2329, + "id": 2360, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "8672:10:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 2330, + "id": 2361, "isConstant": false, "isLValue": false, "isPure": false, @@ -6225,11 +6225,11 @@ }, { "argumentTypes": null, - "id": 2331, + "id": 2362, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2321, + "referencedDeclaration": 2352, "src": "8686:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6248,18 +6248,18 @@ "typeString": "uint256" } ], - "id": 2328, + "id": 2359, "name": "_isApprovedOrOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2427, + "referencedDeclaration": 2458, "src": "8653:18:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) view returns (bool)" } }, - "id": 2332, + "id": 2363, "isConstant": false, "isLValue": false, "isPure": false, @@ -6277,7 +6277,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 2333, + "id": 2364, "isConstant": false, "isLValue": false, "isPure": true, @@ -6304,7 +6304,7 @@ "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" } ], - "id": 2327, + "id": 2358, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -6318,7 +6318,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2334, + "id": 2365, "isConstant": false, "isLValue": false, "isPure": false, @@ -6333,7 +6333,7 @@ "typeString": "tuple()" } }, - "id": 2335, + "id": 2366, "nodeType": "ExpressionStatement", "src": "8645:103:11" }, @@ -6343,11 +6343,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2337, + "id": 2368, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2317, + "referencedDeclaration": 2348, "src": "8772:4:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6356,11 +6356,11 @@ }, { "argumentTypes": null, - "id": 2338, + "id": 2369, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2319, + "referencedDeclaration": 2350, "src": "8778:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6369,11 +6369,11 @@ }, { "argumentTypes": null, - "id": 2339, + "id": 2370, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2321, + "referencedDeclaration": 2352, "src": "8782:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6382,11 +6382,11 @@ }, { "argumentTypes": null, - "id": 2340, + "id": 2371, "name": "_data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2323, + "referencedDeclaration": 2354, "src": "8791:5:11", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -6413,18 +6413,18 @@ "typeString": "bytes memory" } ], - "id": 2336, + "id": 2367, "name": "_safeTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2373, + "referencedDeclaration": 2404, "src": "8758:13:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256,bytes memory)" } }, - "id": 2341, + "id": 2372, "isConstant": false, "isLValue": false, "isPure": false, @@ -6439,43 +6439,43 @@ "typeString": "tuple()" } }, - "id": 2342, + "id": 2373, "nodeType": "ExpressionStatement", "src": "8758:39:11" } ] }, "documentation": { - "id": 2315, + "id": 2346, "nodeType": "StructuredDocumentation", "src": "8462:55:11", "text": " @dev See {IERC721-safeTransferFrom}." }, "functionSelector": "b88d4fde", - "id": 2344, + "id": 2375, "implemented": true, "kind": "function", "modifiers": [], "name": "safeTransferFrom", "nodeType": "FunctionDefinition", "overrides": { - "id": 2325, + "id": 2356, "nodeType": "OverrideSpecifier", "overrides": [], "src": "8626:8:11" }, "parameters": { - "id": 2324, + "id": 2355, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2317, + "id": 2348, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2344, + "scope": 2375, "src": "8548:12:11", "stateVariable": false, "storageLocation": "default", @@ -6484,7 +6484,7 @@ "typeString": "address" }, "typeName": { - "id": 2316, + "id": 2347, "name": "address", "nodeType": "ElementaryTypeName", "src": "8548:7:11", @@ -6499,12 +6499,12 @@ }, { "constant": false, - "id": 2319, + "id": 2350, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2344, + "scope": 2375, "src": "8562:10:11", "stateVariable": false, "storageLocation": "default", @@ -6513,7 +6513,7 @@ "typeString": "address" }, "typeName": { - "id": 2318, + "id": 2349, "name": "address", "nodeType": "ElementaryTypeName", "src": "8562:7:11", @@ -6528,12 +6528,12 @@ }, { "constant": false, - "id": 2321, + "id": 2352, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2344, + "scope": 2375, "src": "8574:15:11", "stateVariable": false, "storageLocation": "default", @@ -6542,7 +6542,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2320, + "id": 2351, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8574:7:11", @@ -6556,12 +6556,12 @@ }, { "constant": false, - "id": 2323, + "id": 2354, "mutability": "mutable", "name": "_data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2344, + "scope": 2375, "src": "8591:18:11", "stateVariable": false, "storageLocation": "memory", @@ -6570,7 +6570,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2322, + "id": 2353, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8591:5:11", @@ -6586,12 +6586,12 @@ "src": "8547:63:11" }, "returnParameters": { - "id": 2326, + "id": 2357, "nodeType": "ParameterList", "parameters": [], "src": "8635:0:11" }, - "scope": 2794, + "scope": 2825, "src": "8522:282:11", "stateMutability": "nonpayable", "virtual": true, @@ -6599,7 +6599,7 @@ }, { "body": { - "id": 2372, + "id": 2403, "nodeType": "Block", "src": "9768:166:11", "statements": [ @@ -6609,11 +6609,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2357, + "id": 2388, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2347, + "referencedDeclaration": 2378, "src": "9788:4:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6622,11 +6622,11 @@ }, { "argumentTypes": null, - "id": 2358, + "id": 2389, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2349, + "referencedDeclaration": 2380, "src": "9794:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6635,11 +6635,11 @@ }, { "argumentTypes": null, - "id": 2359, + "id": 2390, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2351, + "referencedDeclaration": 2382, "src": "9798:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6662,18 +6662,18 @@ "typeString": "uint256" } ], - "id": 2356, + "id": 2387, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2669, + "referencedDeclaration": 2700, "src": "9778:9:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2360, + "id": 2391, "isConstant": false, "isLValue": false, "isPure": false, @@ -6688,7 +6688,7 @@ "typeString": "tuple()" } }, - "id": 2361, + "id": 2392, "nodeType": "ExpressionStatement", "src": "9778:28:11" }, @@ -6701,11 +6701,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2364, + "id": 2395, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2347, + "referencedDeclaration": 2378, "src": "9847:4:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6714,11 +6714,11 @@ }, { "argumentTypes": null, - "id": 2365, + "id": 2396, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2349, + "referencedDeclaration": 2380, "src": "9853:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6727,11 +6727,11 @@ }, { "argumentTypes": null, - "id": 2366, + "id": 2397, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2351, + "referencedDeclaration": 2382, "src": "9857:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6740,11 +6740,11 @@ }, { "argumentTypes": null, - "id": 2367, + "id": 2398, "name": "_data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2353, + "referencedDeclaration": 2384, "src": "9866:5:11", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -6771,18 +6771,18 @@ "typeString": "bytes memory" } ], - "id": 2363, + "id": 2394, "name": "_checkOnERC721Received", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2760, + "referencedDeclaration": 2791, "src": "9824:22:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,address,uint256,bytes memory) returns (bool)" } }, - "id": 2368, + "id": 2399, "isConstant": false, "isLValue": false, "isPure": false, @@ -6800,7 +6800,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 2369, + "id": 2400, "isConstant": false, "isLValue": false, "isPure": true, @@ -6827,7 +6827,7 @@ "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" } ], - "id": 2362, + "id": 2393, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -6841,7 +6841,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2370, + "id": 2401, "isConstant": false, "isLValue": false, "isPure": false, @@ -6856,19 +6856,19 @@ "typeString": "tuple()" } }, - "id": 2371, + "id": 2402, "nodeType": "ExpressionStatement", "src": "9816:111:11" } ] }, "documentation": { - "id": 2345, + "id": 2376, "nodeType": "StructuredDocumentation", "src": "8810:850:11", "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mecanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." }, - "id": 2373, + "id": 2404, "implemented": true, "kind": "function", "modifiers": [], @@ -6876,17 +6876,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2354, + "id": 2385, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2347, + "id": 2378, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2373, + "scope": 2404, "src": "9688:12:11", "stateVariable": false, "storageLocation": "default", @@ -6895,7 +6895,7 @@ "typeString": "address" }, "typeName": { - "id": 2346, + "id": 2377, "name": "address", "nodeType": "ElementaryTypeName", "src": "9688:7:11", @@ -6910,12 +6910,12 @@ }, { "constant": false, - "id": 2349, + "id": 2380, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2373, + "scope": 2404, "src": "9702:10:11", "stateVariable": false, "storageLocation": "default", @@ -6924,7 +6924,7 @@ "typeString": "address" }, "typeName": { - "id": 2348, + "id": 2379, "name": "address", "nodeType": "ElementaryTypeName", "src": "9702:7:11", @@ -6939,12 +6939,12 @@ }, { "constant": false, - "id": 2351, + "id": 2382, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2373, + "scope": 2404, "src": "9714:15:11", "stateVariable": false, "storageLocation": "default", @@ -6953,7 +6953,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2350, + "id": 2381, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9714:7:11", @@ -6967,12 +6967,12 @@ }, { "constant": false, - "id": 2353, + "id": 2384, "mutability": "mutable", "name": "_data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2373, + "scope": 2404, "src": "9731:18:11", "stateVariable": false, "storageLocation": "memory", @@ -6981,7 +6981,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2352, + "id": 2383, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "9731:5:11", @@ -6997,12 +6997,12 @@ "src": "9687:63:11" }, "returnParameters": { - "id": 2355, + "id": 2386, "nodeType": "ParameterList", "parameters": [], "src": "9768:0:11" }, - "scope": 2794, + "scope": 2825, "src": "9665:269:11", "stateMutability": "nonpayable", "virtual": true, @@ -7010,7 +7010,7 @@ }, { "body": { - "id": 2386, + "id": 2417, "nodeType": "Block", "src": "10300:54:11", "statements": [ @@ -7020,11 +7020,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2383, + "id": 2414, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2376, + "referencedDeclaration": 2407, "src": "10339:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7041,32 +7041,32 @@ ], "expression": { "argumentTypes": null, - "id": 2381, + "id": 2412, "name": "_tokenOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1911, + "referencedDeclaration": 1942, "src": "10317:12:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage", "typeString": "struct EnumerableMap.UintToAddressMap storage ref" } }, - "id": 2382, + "id": 2413, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3619, + "referencedDeclaration": 3650, "src": "10317:21:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$3550_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$3550_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$3581_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$3581_storage_ptr_$", "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" } }, - "id": 2384, + "id": 2415, "isConstant": false, "isLValue": false, "isPure": false, @@ -7081,20 +7081,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 2380, - "id": 2385, + "functionReturnParameters": 2411, + "id": 2416, "nodeType": "Return", "src": "10310:37:11" } ] }, "documentation": { - "id": 2374, + "id": 2405, "nodeType": "StructuredDocumentation", "src": "9940:292:11", "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." }, - "id": 2387, + "id": 2418, "implemented": true, "kind": "function", "modifiers": [], @@ -7102,17 +7102,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2377, + "id": 2408, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2376, + "id": 2407, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2387, + "scope": 2418, "src": "10254:15:11", "stateVariable": false, "storageLocation": "default", @@ -7121,7 +7121,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2375, + "id": 2406, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10254:7:11", @@ -7137,17 +7137,17 @@ "src": "10253:17:11" }, "returnParameters": { - "id": 2380, + "id": 2411, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2379, + "id": 2410, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2387, + "scope": 2418, "src": "10294:4:11", "stateVariable": false, "storageLocation": "default", @@ -7156,7 +7156,7 @@ "typeString": "bool" }, "typeName": { - "id": 2378, + "id": 2409, "name": "bool", "nodeType": "ElementaryTypeName", "src": "10294:4:11", @@ -7171,7 +7171,7 @@ ], "src": "10293:6:11" }, - "scope": 2794, + "scope": 2825, "src": "10237:117:11", "stateMutability": "view", "virtual": false, @@ -7179,7 +7179,7 @@ }, { "body": { - "id": 2426, + "id": 2457, "nodeType": "Block", "src": "10603:238:11", "statements": [ @@ -7192,11 +7192,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2399, + "id": 2430, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2392, + "referencedDeclaration": 2423, "src": "10629:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7211,18 +7211,18 @@ "typeString": "uint256" } ], - "id": 2398, + "id": 2429, "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2387, + "referencedDeclaration": 2418, "src": "10621:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 2400, + "id": 2431, "isConstant": false, "isLValue": false, "isPure": false, @@ -7240,7 +7240,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 2401, + "id": 2432, "isConstant": false, "isLValue": false, "isPure": true, @@ -7267,7 +7267,7 @@ "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" } ], - "id": 2397, + "id": 2428, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -7281,7 +7281,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2402, + "id": 2433, "isConstant": false, "isLValue": false, "isPure": false, @@ -7296,23 +7296,23 @@ "typeString": "tuple()" } }, - "id": 2403, + "id": 2434, "nodeType": "ExpressionStatement", "src": "10613:73:11" }, { "assignments": [ - 2405 + 2436 ], "declarations": [ { "constant": false, - "id": 2405, + "id": 2436, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2426, + "scope": 2457, "src": "10696:13:11", "stateVariable": false, "storageLocation": "default", @@ -7321,7 +7321,7 @@ "typeString": "address" }, "typeName": { - "id": 2404, + "id": 2435, "name": "address", "nodeType": "ElementaryTypeName", "src": "10696:7:11", @@ -7335,17 +7335,17 @@ "visibility": "internal" } ], - "id": 2409, + "id": 2440, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2407, + "id": 2438, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2392, + "referencedDeclaration": 2423, "src": "10720:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7360,18 +7360,18 @@ "typeString": "uint256" } ], - "id": 2406, + "id": 2437, "name": "ownerOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2011, + "referencedDeclaration": 2042, "src": "10712:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, - "id": 2408, + "id": 2439, "isConstant": false, "isLValue": false, "isPure": false, @@ -7399,7 +7399,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2423, + "id": 2454, "isConstant": false, "isLValue": false, "isPure": false, @@ -7410,7 +7410,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2418, + "id": 2449, "isConstant": false, "isLValue": false, "isPure": false, @@ -7421,18 +7421,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2412, + "id": 2443, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2410, + "id": 2441, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2390, + "referencedDeclaration": 2421, "src": "10746:7:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7443,11 +7443,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2411, + "id": 2442, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2405, + "referencedDeclaration": 2436, "src": "10757:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7468,7 +7468,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2417, + "id": 2448, "isConstant": false, "isLValue": false, "isPure": false, @@ -7478,11 +7478,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2414, + "id": 2445, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2392, + "referencedDeclaration": 2423, "src": "10778:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7497,18 +7497,18 @@ "typeString": "uint256" } ], - "id": 2413, + "id": 2444, "name": "getApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2216, + "referencedDeclaration": 2247, "src": "10766:11:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, - "id": 2415, + "id": 2446, "isConstant": false, "isLValue": false, "isPure": false, @@ -7527,11 +7527,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2416, + "id": 2447, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2390, + "referencedDeclaration": 2421, "src": "10790:7:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7557,11 +7557,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2420, + "id": 2451, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2405, + "referencedDeclaration": 2436, "src": "10818:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7570,11 +7570,11 @@ }, { "argumentTypes": null, - "id": 2421, + "id": 2452, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2390, + "referencedDeclaration": 2421, "src": "10825:7:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7593,18 +7593,18 @@ "typeString": "address" } ], - "id": 2419, + "id": 2450, "name": "isApprovedForAll", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, + "referencedDeclaration": 2299, "src": "10801:16:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) view returns (bool)" } }, - "id": 2422, + "id": 2453, "isConstant": false, "isLValue": false, "isPure": false, @@ -7626,7 +7626,7 @@ } } ], - "id": 2424, + "id": 2455, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -7639,20 +7639,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 2396, - "id": 2425, + "functionReturnParameters": 2427, + "id": 2456, "nodeType": "Return", "src": "10738:96:11" } ] }, "documentation": { - "id": 2388, + "id": 2419, "nodeType": "StructuredDocumentation", "src": "10360:147:11", "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." }, - "id": 2427, + "id": 2458, "implemented": true, "kind": "function", "modifiers": [], @@ -7660,17 +7660,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2393, + "id": 2424, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2390, + "id": 2421, "mutability": "mutable", "name": "spender", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2427, + "scope": 2458, "src": "10540:15:11", "stateVariable": false, "storageLocation": "default", @@ -7679,7 +7679,7 @@ "typeString": "address" }, "typeName": { - "id": 2389, + "id": 2420, "name": "address", "nodeType": "ElementaryTypeName", "src": "10540:7:11", @@ -7694,12 +7694,12 @@ }, { "constant": false, - "id": 2392, + "id": 2423, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2427, + "scope": 2458, "src": "10557:15:11", "stateVariable": false, "storageLocation": "default", @@ -7708,7 +7708,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2391, + "id": 2422, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10557:7:11", @@ -7724,17 +7724,17 @@ "src": "10539:34:11" }, "returnParameters": { - "id": 2396, + "id": 2427, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2395, + "id": 2426, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2427, + "scope": 2458, "src": "10597:4:11", "stateVariable": false, "storageLocation": "default", @@ -7743,7 +7743,7 @@ "typeString": "bool" }, "typeName": { - "id": 2394, + "id": 2425, "name": "bool", "nodeType": "ElementaryTypeName", "src": "10597:4:11", @@ -7758,7 +7758,7 @@ ], "src": "10596:6:11" }, - "scope": 2794, + "scope": 2825, "src": "10512:329:11", "stateMutability": "view", "virtual": false, @@ -7766,7 +7766,7 @@ }, { "body": { - "id": 2441, + "id": 2472, "nodeType": "Block", "src": "11237:43:11", "statements": [ @@ -7776,11 +7776,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2436, + "id": 2467, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2430, + "referencedDeclaration": 2461, "src": "11257:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7789,11 +7789,11 @@ }, { "argumentTypes": null, - "id": 2437, + "id": 2468, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2432, + "referencedDeclaration": 2463, "src": "11261:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7803,7 +7803,7 @@ { "argumentTypes": null, "hexValue": "", - "id": 2438, + "id": 2469, "isConstant": false, "isLValue": false, "isPure": true, @@ -7834,21 +7834,21 @@ "typeString": "literal_string \"\"" } ], - "id": 2435, + "id": 2466, "name": "_safeMint", "nodeType": "Identifier", "overloadedDeclarations": [ - 2442, - 2471 + 2473, + 2502 ], - "referencedDeclaration": 2471, + "referencedDeclaration": 2502, "src": "11247:9:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,bytes memory)" } }, - "id": 2439, + "id": 2470, "isConstant": false, "isLValue": false, "isPure": false, @@ -7863,19 +7863,19 @@ "typeString": "tuple()" } }, - "id": 2440, + "id": 2471, "nodeType": "ExpressionStatement", "src": "11247:26:11" } ] }, "documentation": { - "id": 2428, + "id": 2459, "nodeType": "StructuredDocumentation", "src": "10847:320:11", "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." }, - "id": 2442, + "id": 2473, "implemented": true, "kind": "function", "modifiers": [], @@ -7883,17 +7883,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2433, + "id": 2464, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2430, + "id": 2461, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2442, + "scope": 2473, "src": "11191:10:11", "stateVariable": false, "storageLocation": "default", @@ -7902,7 +7902,7 @@ "typeString": "address" }, "typeName": { - "id": 2429, + "id": 2460, "name": "address", "nodeType": "ElementaryTypeName", "src": "11191:7:11", @@ -7917,12 +7917,12 @@ }, { "constant": false, - "id": 2432, + "id": 2463, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2442, + "scope": 2473, "src": "11203:15:11", "stateVariable": false, "storageLocation": "default", @@ -7931,7 +7931,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2431, + "id": 2462, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11203:7:11", @@ -7947,12 +7947,12 @@ "src": "11190:29:11" }, "returnParameters": { - "id": 2434, + "id": 2465, "nodeType": "ParameterList", "parameters": [], "src": "11237:0:11" }, - "scope": 2794, + "scope": 2825, "src": "11172:108:11", "stateMutability": "nonpayable", "virtual": true, @@ -7960,7 +7960,7 @@ }, { "body": { - "id": 2470, + "id": 2501, "nodeType": "Block", "src": "11586:162:11", "statements": [ @@ -7970,11 +7970,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2453, + "id": 2484, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, + "referencedDeclaration": 2476, "src": "11602:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7983,11 +7983,11 @@ }, { "argumentTypes": null, - "id": 2454, + "id": 2485, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2447, + "referencedDeclaration": 2478, "src": "11606:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8006,18 +8006,18 @@ "typeString": "uint256" } ], - "id": 2452, + "id": 2483, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2530, + "referencedDeclaration": 2561, "src": "11596:5:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 2455, + "id": 2486, "isConstant": false, "isLValue": false, "isPure": false, @@ -8032,7 +8032,7 @@ "typeString": "tuple()" } }, - "id": 2456, + "id": 2487, "nodeType": "ExpressionStatement", "src": "11596:18:11" }, @@ -8049,7 +8049,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2461, + "id": 2492, "isConstant": false, "isLValue": false, "isPure": true, @@ -8072,7 +8072,7 @@ "typeString": "int_const 0" } ], - "id": 2460, + "id": 2491, "isConstant": false, "isLValue": false, "isPure": true, @@ -8084,7 +8084,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 2459, + "id": 2490, "name": "address", "nodeType": "ElementaryTypeName", "src": "11655:7:11", @@ -8094,7 +8094,7 @@ } } }, - "id": 2462, + "id": 2493, "isConstant": false, "isLValue": false, "isPure": true, @@ -8111,11 +8111,11 @@ }, { "argumentTypes": null, - "id": 2463, + "id": 2494, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, + "referencedDeclaration": 2476, "src": "11667:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8124,11 +8124,11 @@ }, { "argumentTypes": null, - "id": 2464, + "id": 2495, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2447, + "referencedDeclaration": 2478, "src": "11671:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8137,11 +8137,11 @@ }, { "argumentTypes": null, - "id": 2465, + "id": 2496, "name": "_data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2449, + "referencedDeclaration": 2480, "src": "11680:5:11", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -8168,18 +8168,18 @@ "typeString": "bytes memory" } ], - "id": 2458, + "id": 2489, "name": "_checkOnERC721Received", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2760, + "referencedDeclaration": 2791, "src": "11632:22:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,address,uint256,bytes memory) returns (bool)" } }, - "id": 2466, + "id": 2497, "isConstant": false, "isLValue": false, "isPure": false, @@ -8197,7 +8197,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 2467, + "id": 2498, "isConstant": false, "isLValue": false, "isPure": true, @@ -8224,7 +8224,7 @@ "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" } ], - "id": 2457, + "id": 2488, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -8238,7 +8238,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2468, + "id": 2499, "isConstant": false, "isLValue": false, "isPure": false, @@ -8253,19 +8253,19 @@ "typeString": "tuple()" } }, - "id": 2469, + "id": 2500, "nodeType": "ExpressionStatement", "src": "11624:117:11" } ] }, "documentation": { - "id": 2443, + "id": 2474, "nodeType": "StructuredDocumentation", "src": "11286:210:11", "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." }, - "id": 2471, + "id": 2502, "implemented": true, "kind": "function", "modifiers": [], @@ -8273,17 +8273,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2450, + "id": 2481, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2445, + "id": 2476, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2471, + "scope": 2502, "src": "11520:10:11", "stateVariable": false, "storageLocation": "default", @@ -8292,7 +8292,7 @@ "typeString": "address" }, "typeName": { - "id": 2444, + "id": 2475, "name": "address", "nodeType": "ElementaryTypeName", "src": "11520:7:11", @@ -8307,12 +8307,12 @@ }, { "constant": false, - "id": 2447, + "id": 2478, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2471, + "scope": 2502, "src": "11532:15:11", "stateVariable": false, "storageLocation": "default", @@ -8321,7 +8321,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2446, + "id": 2477, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11532:7:11", @@ -8335,12 +8335,12 @@ }, { "constant": false, - "id": 2449, + "id": 2480, "mutability": "mutable", "name": "_data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2471, + "scope": 2502, "src": "11549:18:11", "stateVariable": false, "storageLocation": "memory", @@ -8349,7 +8349,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2448, + "id": 2479, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "11549:5:11", @@ -8365,12 +8365,12 @@ "src": "11519:49:11" }, "returnParameters": { - "id": 2451, + "id": 2482, "nodeType": "ParameterList", "parameters": [], "src": "11586:0:11" }, - "scope": 2794, + "scope": 2825, "src": "11501:247:11", "stateMutability": "nonpayable", "virtual": true, @@ -8378,7 +8378,7 @@ }, { "body": { - "id": 2529, + "id": 2560, "nodeType": "Block", "src": "12131:332:11", "statements": [ @@ -8392,18 +8392,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2485, + "id": 2516, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2480, + "id": 2511, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2474, + "referencedDeclaration": 2505, "src": "12149:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8418,7 +8418,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2483, + "id": 2514, "isConstant": false, "isLValue": false, "isPure": true, @@ -8441,7 +8441,7 @@ "typeString": "int_const 0" } ], - "id": 2482, + "id": 2513, "isConstant": false, "isLValue": false, "isPure": true, @@ -8453,7 +8453,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 2481, + "id": 2512, "name": "address", "nodeType": "ElementaryTypeName", "src": "12155:7:11", @@ -8463,7 +8463,7 @@ } } }, - "id": 2484, + "id": 2515, "isConstant": false, "isLValue": false, "isPure": true, @@ -8487,7 +8487,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 2486, + "id": 2517, "isConstant": false, "isLValue": false, "isPure": true, @@ -8514,7 +8514,7 @@ "typeString": "literal_string \"ERC721: mint to the zero address\"" } ], - "id": 2479, + "id": 2510, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -8528,7 +8528,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2487, + "id": 2518, "isConstant": false, "isLValue": false, "isPure": false, @@ -8543,7 +8543,7 @@ "typeString": "tuple()" } }, - "id": 2488, + "id": 2519, "nodeType": "ExpressionStatement", "src": "12141:61:11" }, @@ -8553,7 +8553,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2493, + "id": 2524, "isConstant": false, "isLValue": false, "isPure": false, @@ -8567,11 +8567,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2491, + "id": 2522, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2476, + "referencedDeclaration": 2507, "src": "12229:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8586,18 +8586,18 @@ "typeString": "uint256" } ], - "id": 2490, + "id": 2521, "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2387, + "referencedDeclaration": 2418, "src": "12221:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 2492, + "id": 2523, "isConstant": false, "isLValue": false, "isPure": false, @@ -8620,7 +8620,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 2494, + "id": 2525, "isConstant": false, "isLValue": false, "isPure": true, @@ -8647,7 +8647,7 @@ "typeString": "literal_string \"ERC721: token already minted\"" } ], - "id": 2489, + "id": 2520, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -8661,7 +8661,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2495, + "id": 2526, "isConstant": false, "isLValue": false, "isPure": false, @@ -8676,7 +8676,7 @@ "typeString": "tuple()" } }, - "id": 2496, + "id": 2527, "nodeType": "ExpressionStatement", "src": "12212:58:11" }, @@ -8690,7 +8690,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2500, + "id": 2531, "isConstant": false, "isLValue": false, "isPure": true, @@ -8713,7 +8713,7 @@ "typeString": "int_const 0" } ], - "id": 2499, + "id": 2530, "isConstant": false, "isLValue": false, "isPure": true, @@ -8725,7 +8725,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 2498, + "id": 2529, "name": "address", "nodeType": "ElementaryTypeName", "src": "12302:7:11", @@ -8735,7 +8735,7 @@ } } }, - "id": 2501, + "id": 2532, "isConstant": false, "isLValue": false, "isPure": true, @@ -8752,11 +8752,11 @@ }, { "argumentTypes": null, - "id": 2502, + "id": 2533, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2474, + "referencedDeclaration": 2505, "src": "12314:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8765,11 +8765,11 @@ }, { "argumentTypes": null, - "id": 2503, + "id": 2534, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2476, + "referencedDeclaration": 2507, "src": "12318:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8792,18 +8792,18 @@ "typeString": "uint256" } ], - "id": 2497, + "id": 2528, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2793, + "referencedDeclaration": 2824, "src": "12281:20:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2504, + "id": 2535, "isConstant": false, "isLValue": false, "isPure": false, @@ -8818,7 +8818,7 @@ "typeString": "tuple()" } }, - "id": 2505, + "id": 2536, "nodeType": "ExpressionStatement", "src": "12281:45:11" }, @@ -8828,11 +8828,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2510, + "id": 2541, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2476, + "referencedDeclaration": 2507, "src": "12359:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8851,25 +8851,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2506, + "id": 2537, "name": "_holderTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1909, + "referencedDeclaration": 1940, "src": "12337:13:11", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4025_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4056_storage_$", "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" } }, - "id": 2508, + "id": 2539, "indexExpression": { "argumentTypes": null, - "id": 2507, + "id": 2538, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2474, + "referencedDeclaration": 2505, "src": "12351:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8883,25 +8883,25 @@ "nodeType": "IndexAccess", "src": "12337:17:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage", + "typeIdentifier": "t_struct$_UintSet_$4056_storage", "typeString": "struct EnumerableSet.UintSet storage ref" } }, - "id": 2509, + "id": 2540, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4045, + "referencedDeclaration": 4076, "src": "12337:21:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$4025_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$4025_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$4056_storage_ptr_$", "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" } }, - "id": 2511, + "id": 2542, "isConstant": false, "isLValue": false, "isPure": false, @@ -8916,7 +8916,7 @@ "typeString": "bool" } }, - "id": 2512, + "id": 2543, "nodeType": "ExpressionStatement", "src": "12337:30:11" }, @@ -8926,11 +8926,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2516, + "id": 2547, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2476, + "referencedDeclaration": 2507, "src": "12395:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8939,11 +8939,11 @@ }, { "argumentTypes": null, - "id": 2517, + "id": 2548, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2474, + "referencedDeclaration": 2505, "src": "12404:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8964,32 +8964,32 @@ ], "expression": { "argumentTypes": null, - "id": 2513, + "id": 2544, "name": "_tokenOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1911, + "referencedDeclaration": 1942, "src": "12378:12:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage", "typeString": "struct EnumerableMap.UintToAddressMap storage ref" } }, - "id": 2515, + "id": 2546, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "set", "nodeType": "MemberAccess", - "referencedDeclaration": 3579, + "referencedDeclaration": 3610, "src": "12378:16:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$3550_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$3550_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$3581_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$3581_storage_ptr_$", "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" } }, - "id": 2518, + "id": 2549, "isConstant": false, "isLValue": false, "isPure": false, @@ -9004,7 +9004,7 @@ "typeString": "bool" } }, - "id": 2519, + "id": 2550, "nodeType": "ExpressionStatement", "src": "12378:29:11" }, @@ -9018,7 +9018,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2523, + "id": 2554, "isConstant": false, "isLValue": false, "isPure": true, @@ -9041,7 +9041,7 @@ "typeString": "int_const 0" } ], - "id": 2522, + "id": 2553, "isConstant": false, "isLValue": false, "isPure": true, @@ -9053,7 +9053,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 2521, + "id": 2552, "name": "address", "nodeType": "ElementaryTypeName", "src": "12432:7:11", @@ -9063,7 +9063,7 @@ } } }, - "id": 2524, + "id": 2555, "isConstant": false, "isLValue": false, "isPure": true, @@ -9080,11 +9080,11 @@ }, { "argumentTypes": null, - "id": 2525, + "id": 2556, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2474, + "referencedDeclaration": 2505, "src": "12444:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9093,11 +9093,11 @@ }, { "argumentTypes": null, - "id": 2526, + "id": 2557, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2476, + "referencedDeclaration": 2507, "src": "12448:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9120,18 +9120,18 @@ "typeString": "uint256" } ], - "id": 2520, + "id": 2551, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2839, + "referencedDeclaration": 2870, "src": "12423:8:11", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2527, + "id": 2558, "isConstant": false, "isLValue": false, "isPure": false, @@ -9146,19 +9146,19 @@ "typeString": "tuple()" } }, - "id": 2528, + "id": 2559, "nodeType": "EmitStatement", "src": "12418:38:11" } ] }, "documentation": { - "id": 2472, + "id": 2503, "nodeType": "StructuredDocumentation", "src": "11754:311:11", "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." }, - "id": 2530, + "id": 2561, "implemented": true, "kind": "function", "modifiers": [], @@ -9166,17 +9166,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2477, + "id": 2508, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2474, + "id": 2505, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2530, + "scope": 2561, "src": "12085:10:11", "stateVariable": false, "storageLocation": "default", @@ -9185,7 +9185,7 @@ "typeString": "address" }, "typeName": { - "id": 2473, + "id": 2504, "name": "address", "nodeType": "ElementaryTypeName", "src": "12085:7:11", @@ -9200,12 +9200,12 @@ }, { "constant": false, - "id": 2476, + "id": 2507, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2530, + "scope": 2561, "src": "12097:15:11", "stateVariable": false, "storageLocation": "default", @@ -9214,7 +9214,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2475, + "id": 2506, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12097:7:11", @@ -9230,12 +9230,12 @@ "src": "12084:29:11" }, "returnParameters": { - "id": 2478, + "id": 2509, "nodeType": "ParameterList", "parameters": [], "src": "12131:0:11" }, - "scope": 2794, + "scope": 2825, "src": "12070:393:11", "stateMutability": "nonpayable", "virtual": true, @@ -9243,23 +9243,23 @@ }, { "body": { - "id": 2597, + "id": 2628, "nodeType": "Block", "src": "12729:453:11", "statements": [ { "assignments": [ - 2537 + 2568 ], "declarations": [ { "constant": false, - "id": 2537, + "id": 2568, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2597, + "scope": 2628, "src": "12739:13:11", "stateVariable": false, "storageLocation": "default", @@ -9268,7 +9268,7 @@ "typeString": "address" }, "typeName": { - "id": 2536, + "id": 2567, "name": "address", "nodeType": "ElementaryTypeName", "src": "12739:7:11", @@ -9282,17 +9282,17 @@ "visibility": "internal" } ], - "id": 2541, + "id": 2572, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2539, + "id": 2570, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 2564, "src": "12763:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9307,18 +9307,18 @@ "typeString": "uint256" } ], - "id": 2538, + "id": 2569, "name": "ownerOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2011, + "referencedDeclaration": 2042, "src": "12755:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, - "id": 2540, + "id": 2571, "isConstant": false, "isLValue": false, "isPure": false, @@ -9342,11 +9342,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2543, + "id": 2574, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2537, + "referencedDeclaration": 2568, "src": "12803:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9359,7 +9359,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2546, + "id": 2577, "isConstant": false, "isLValue": false, "isPure": true, @@ -9382,7 +9382,7 @@ "typeString": "int_const 0" } ], - "id": 2545, + "id": 2576, "isConstant": false, "isLValue": false, "isPure": true, @@ -9394,7 +9394,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 2544, + "id": 2575, "name": "address", "nodeType": "ElementaryTypeName", "src": "12810:7:11", @@ -9404,7 +9404,7 @@ } } }, - "id": 2547, + "id": 2578, "isConstant": false, "isLValue": false, "isPure": true, @@ -9421,11 +9421,11 @@ }, { "argumentTypes": null, - "id": 2548, + "id": 2579, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 2564, "src": "12822:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9448,18 +9448,18 @@ "typeString": "uint256" } ], - "id": 2542, + "id": 2573, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2793, + "referencedDeclaration": 2824, "src": "12782:20:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2549, + "id": 2580, "isConstant": false, "isLValue": false, "isPure": false, @@ -9474,7 +9474,7 @@ "typeString": "tuple()" } }, - "id": 2550, + "id": 2581, "nodeType": "ExpressionStatement", "src": "12782:48:11" }, @@ -9488,7 +9488,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2554, + "id": 2585, "isConstant": false, "isLValue": false, "isPure": true, @@ -9511,7 +9511,7 @@ "typeString": "int_const 0" } ], - "id": 2553, + "id": 2584, "isConstant": false, "isLValue": false, "isPure": true, @@ -9523,7 +9523,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 2552, + "id": 2583, "name": "address", "nodeType": "ElementaryTypeName", "src": "12877:7:11", @@ -9533,7 +9533,7 @@ } } }, - "id": 2555, + "id": 2586, "isConstant": false, "isLValue": false, "isPure": true, @@ -9550,11 +9550,11 @@ }, { "argumentTypes": null, - "id": 2556, + "id": 2587, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 2564, "src": "12889:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9573,18 +9573,18 @@ "typeString": "uint256" } ], - "id": 2551, + "id": 2582, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2782, + "referencedDeclaration": 2813, "src": "12868:8:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 2557, + "id": 2588, "isConstant": false, "isLValue": false, "isPure": false, @@ -9599,7 +9599,7 @@ "typeString": "tuple()" } }, - "id": 2558, + "id": 2589, "nodeType": "ExpressionStatement", "src": "12868:29:11" }, @@ -9610,7 +9610,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2567, + "id": 2598, "isConstant": false, "isLValue": false, "isPure": false, @@ -9624,25 +9624,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2561, + "id": 2592, "name": "_tokenURIs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1929, + "referencedDeclaration": 1960, "src": "12953:10:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", "typeString": "mapping(uint256 => string storage ref)" } }, - "id": 2563, + "id": 2594, "indexExpression": { "argumentTypes": null, - "id": 2562, + "id": 2593, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 2564, "src": "12964:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9668,7 +9668,7 @@ "typeString": "string storage ref" } ], - "id": 2560, + "id": 2591, "isConstant": false, "isLValue": false, "isPure": true, @@ -9680,7 +9680,7 @@ "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 2559, + "id": 2590, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "12947:5:11", @@ -9690,7 +9690,7 @@ } } }, - "id": 2564, + "id": 2595, "isConstant": false, "isLValue": false, "isPure": false, @@ -9705,7 +9705,7 @@ "typeString": "bytes storage pointer" } }, - "id": 2565, + "id": 2596, "isConstant": false, "isLValue": false, "isPure": false, @@ -9724,7 +9724,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2566, + "id": 2597, "isConstant": false, "isLValue": false, "isPure": true, @@ -9746,18 +9746,18 @@ } }, "falseBody": null, - "id": 2574, + "id": 2605, "nodeType": "IfStatement", "src": "12943:95:11", "trueBody": { - "id": 2573, + "id": 2604, "nodeType": "Block", "src": "12987:51:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 2571, + "id": 2602, "isConstant": false, "isLValue": false, "isPure": false, @@ -9770,25 +9770,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2568, + "id": 2599, "name": "_tokenURIs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1929, + "referencedDeclaration": 1960, "src": "13008:10:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", "typeString": "mapping(uint256 => string storage ref)" } }, - "id": 2570, + "id": 2601, "indexExpression": { "argumentTypes": null, - "id": 2569, + "id": 2600, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 2564, "src": "13019:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9811,7 +9811,7 @@ "typeString": "tuple()" } }, - "id": 2572, + "id": 2603, "nodeType": "ExpressionStatement", "src": "13001:26:11" } @@ -9824,11 +9824,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2579, + "id": 2610, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 2564, "src": "13076:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9847,25 +9847,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2575, + "id": 2606, "name": "_holderTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1909, + "referencedDeclaration": 1940, "src": "13048:13:11", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4025_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4056_storage_$", "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" } }, - "id": 2577, + "id": 2608, "indexExpression": { "argumentTypes": null, - "id": 2576, + "id": 2607, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2537, + "referencedDeclaration": 2568, "src": "13062:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9879,25 +9879,25 @@ "nodeType": "IndexAccess", "src": "13048:20:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage", + "typeIdentifier": "t_struct$_UintSet_$4056_storage", "typeString": "struct EnumerableSet.UintSet storage ref" } }, - "id": 2578, + "id": 2609, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 4065, + "referencedDeclaration": 4096, "src": "13048:27:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$4025_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$4025_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$4056_storage_ptr_$", "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" } }, - "id": 2580, + "id": 2611, "isConstant": false, "isLValue": false, "isPure": false, @@ -9912,7 +9912,7 @@ "typeString": "bool" } }, - "id": 2581, + "id": 2612, "nodeType": "ExpressionStatement", "src": "13048:36:11" }, @@ -9922,11 +9922,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2585, + "id": 2616, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 2564, "src": "13115:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9943,32 +9943,32 @@ ], "expression": { "argumentTypes": null, - "id": 2582, + "id": 2613, "name": "_tokenOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1911, + "referencedDeclaration": 1942, "src": "13095:12:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage", "typeString": "struct EnumerableMap.UintToAddressMap storage ref" } }, - "id": 2584, + "id": 2615, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 3599, + "referencedDeclaration": 3630, "src": "13095:19:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$3550_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$3550_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$3581_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$3581_storage_ptr_$", "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" } }, - "id": 2586, + "id": 2617, "isConstant": false, "isLValue": false, "isPure": false, @@ -9983,7 +9983,7 @@ "typeString": "bool" } }, - "id": 2587, + "id": 2618, "nodeType": "ExpressionStatement", "src": "13095:28:11" }, @@ -9993,11 +9993,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2589, + "id": 2620, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2537, + "referencedDeclaration": 2568, "src": "13148:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10010,7 +10010,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2592, + "id": 2623, "isConstant": false, "isLValue": false, "isPure": true, @@ -10033,7 +10033,7 @@ "typeString": "int_const 0" } ], - "id": 2591, + "id": 2622, "isConstant": false, "isLValue": false, "isPure": true, @@ -10045,7 +10045,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 2590, + "id": 2621, "name": "address", "nodeType": "ElementaryTypeName", "src": "13155:7:11", @@ -10055,7 +10055,7 @@ } } }, - "id": 2593, + "id": 2624, "isConstant": false, "isLValue": false, "isPure": true, @@ -10072,11 +10072,11 @@ }, { "argumentTypes": null, - "id": 2594, + "id": 2625, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 2564, "src": "13167:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10099,18 +10099,18 @@ "typeString": "uint256" } ], - "id": 2588, + "id": 2619, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2839, + "referencedDeclaration": 2870, "src": "13139:8:11", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2595, + "id": 2626, "isConstant": false, "isLValue": false, "isPure": false, @@ -10125,19 +10125,19 @@ "typeString": "tuple()" } }, - "id": 2596, + "id": 2627, "nodeType": "EmitStatement", "src": "13134:41:11" } ] }, "documentation": { - "id": 2531, + "id": 2562, "nodeType": "StructuredDocumentation", "src": "12469:206:11", "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." }, - "id": 2598, + "id": 2629, "implemented": true, "kind": "function", "modifiers": [], @@ -10145,17 +10145,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2534, + "id": 2565, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2533, + "id": 2564, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2598, + "scope": 2629, "src": "12695:15:11", "stateVariable": false, "storageLocation": "default", @@ -10164,7 +10164,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2532, + "id": 2563, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12695:7:11", @@ -10180,12 +10180,12 @@ "src": "12694:17:11" }, "returnParameters": { - "id": 2535, + "id": 2566, "nodeType": "ParameterList", "parameters": [], "src": "12729:0:11" }, - "scope": 2794, + "scope": 2825, "src": "12680:502:11", "stateMutability": "nonpayable", "virtual": true, @@ -10193,7 +10193,7 @@ }, { "body": { - "id": 2668, + "id": 2699, "nodeType": "Block", "src": "13585:480:11", "statements": [ @@ -10207,7 +10207,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2613, + "id": 2644, "isConstant": false, "isLValue": false, "isPure": false, @@ -10217,11 +10217,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2610, + "id": 2641, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2605, + "referencedDeclaration": 2636, "src": "13611:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10236,18 +10236,18 @@ "typeString": "uint256" } ], - "id": 2609, + "id": 2640, "name": "ownerOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2011, + "referencedDeclaration": 2042, "src": "13603:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, - "id": 2611, + "id": 2642, "isConstant": false, "isLValue": false, "isPure": false, @@ -10266,11 +10266,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2612, + "id": 2643, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2601, + "referencedDeclaration": 2632, "src": "13623:4:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10286,7 +10286,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 2614, + "id": 2645, "isConstant": false, "isLValue": false, "isPure": true, @@ -10313,7 +10313,7 @@ "typeString": "literal_string \"ERC721: transfer of token that is not own\"" } ], - "id": 2608, + "id": 2639, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -10327,7 +10327,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2615, + "id": 2646, "isConstant": false, "isLValue": false, "isPure": false, @@ -10342,7 +10342,7 @@ "typeString": "tuple()" } }, - "id": 2616, + "id": 2647, "nodeType": "ExpressionStatement", "src": "13595:78:11" }, @@ -10356,18 +10356,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2623, + "id": 2654, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2618, + "id": 2649, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2603, + "referencedDeclaration": 2634, "src": "13691:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10382,7 +10382,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2621, + "id": 2652, "isConstant": false, "isLValue": false, "isPure": true, @@ -10405,7 +10405,7 @@ "typeString": "int_const 0" } ], - "id": 2620, + "id": 2651, "isConstant": false, "isLValue": false, "isPure": true, @@ -10417,7 +10417,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 2619, + "id": 2650, "name": "address", "nodeType": "ElementaryTypeName", "src": "13697:7:11", @@ -10427,7 +10427,7 @@ } } }, - "id": 2622, + "id": 2653, "isConstant": false, "isLValue": false, "isPure": true, @@ -10451,7 +10451,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 2624, + "id": 2655, "isConstant": false, "isLValue": false, "isPure": true, @@ -10478,7 +10478,7 @@ "typeString": "literal_string \"ERC721: transfer to the zero address\"" } ], - "id": 2617, + "id": 2648, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -10492,7 +10492,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2625, + "id": 2656, "isConstant": false, "isLValue": false, "isPure": false, @@ -10507,7 +10507,7 @@ "typeString": "tuple()" } }, - "id": 2626, + "id": 2657, "nodeType": "ExpressionStatement", "src": "13683:65:11" }, @@ -10517,11 +10517,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2628, + "id": 2659, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2601, + "referencedDeclaration": 2632, "src": "13780:4:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10530,11 +10530,11 @@ }, { "argumentTypes": null, - "id": 2629, + "id": 2660, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2603, + "referencedDeclaration": 2634, "src": "13786:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10543,11 +10543,11 @@ }, { "argumentTypes": null, - "id": 2630, + "id": 2661, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2605, + "referencedDeclaration": 2636, "src": "13790:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10570,18 +10570,18 @@ "typeString": "uint256" } ], - "id": 2627, + "id": 2658, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2793, + "referencedDeclaration": 2824, "src": "13759:20:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2631, + "id": 2662, "isConstant": false, "isLValue": false, "isPure": false, @@ -10596,7 +10596,7 @@ "typeString": "tuple()" } }, - "id": 2632, + "id": 2663, "nodeType": "ExpressionStatement", "src": "13759:39:11" }, @@ -10610,7 +10610,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2636, + "id": 2667, "isConstant": false, "isLValue": false, "isPure": true, @@ -10633,7 +10633,7 @@ "typeString": "int_const 0" } ], - "id": 2635, + "id": 2666, "isConstant": false, "isLValue": false, "isPure": true, @@ -10645,7 +10645,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 2634, + "id": 2665, "name": "address", "nodeType": "ElementaryTypeName", "src": "13869:7:11", @@ -10655,7 +10655,7 @@ } } }, - "id": 2637, + "id": 2668, "isConstant": false, "isLValue": false, "isPure": true, @@ -10672,11 +10672,11 @@ }, { "argumentTypes": null, - "id": 2638, + "id": 2669, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2605, + "referencedDeclaration": 2636, "src": "13881:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10695,18 +10695,18 @@ "typeString": "uint256" } ], - "id": 2633, + "id": 2664, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2782, + "referencedDeclaration": 2813, "src": "13860:8:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 2639, + "id": 2670, "isConstant": false, "isLValue": false, "isPure": false, @@ -10721,7 +10721,7 @@ "typeString": "tuple()" } }, - "id": 2640, + "id": 2671, "nodeType": "ExpressionStatement", "src": "13860:29:11" }, @@ -10731,11 +10731,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2645, + "id": 2676, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2605, + "referencedDeclaration": 2636, "src": "13927:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10754,25 +10754,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2641, + "id": 2672, "name": "_holderTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1909, + "referencedDeclaration": 1940, "src": "13900:13:11", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4025_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4056_storage_$", "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" } }, - "id": 2643, + "id": 2674, "indexExpression": { "argumentTypes": null, - "id": 2642, + "id": 2673, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2601, + "referencedDeclaration": 2632, "src": "13914:4:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10786,25 +10786,25 @@ "nodeType": "IndexAccess", "src": "13900:19:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage", + "typeIdentifier": "t_struct$_UintSet_$4056_storage", "typeString": "struct EnumerableSet.UintSet storage ref" } }, - "id": 2644, + "id": 2675, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 4065, + "referencedDeclaration": 4096, "src": "13900:26:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$4025_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$4025_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$4056_storage_ptr_$", "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" } }, - "id": 2646, + "id": 2677, "isConstant": false, "isLValue": false, "isPure": false, @@ -10819,7 +10819,7 @@ "typeString": "bool" } }, - "id": 2647, + "id": 2678, "nodeType": "ExpressionStatement", "src": "13900:35:11" }, @@ -10829,11 +10829,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2652, + "id": 2683, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2605, + "referencedDeclaration": 2636, "src": "13967:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10852,25 +10852,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2648, + "id": 2679, "name": "_holderTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1909, + "referencedDeclaration": 1940, "src": "13945:13:11", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4025_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4056_storage_$", "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" } }, - "id": 2650, + "id": 2681, "indexExpression": { "argumentTypes": null, - "id": 2649, + "id": 2680, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2603, + "referencedDeclaration": 2634, "src": "13959:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10884,25 +10884,25 @@ "nodeType": "IndexAccess", "src": "13945:17:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage", + "typeIdentifier": "t_struct$_UintSet_$4056_storage", "typeString": "struct EnumerableSet.UintSet storage ref" } }, - "id": 2651, + "id": 2682, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4045, + "referencedDeclaration": 4076, "src": "13945:21:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$4025_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$4025_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$4056_storage_ptr_$", "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" } }, - "id": 2653, + "id": 2684, "isConstant": false, "isLValue": false, "isPure": false, @@ -10917,7 +10917,7 @@ "typeString": "bool" } }, - "id": 2654, + "id": 2685, "nodeType": "ExpressionStatement", "src": "13945:30:11" }, @@ -10927,11 +10927,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2658, + "id": 2689, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2605, + "referencedDeclaration": 2636, "src": "14003:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10940,11 +10940,11 @@ }, { "argumentTypes": null, - "id": 2659, + "id": 2690, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2603, + "referencedDeclaration": 2634, "src": "14012:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10965,32 +10965,32 @@ ], "expression": { "argumentTypes": null, - "id": 2655, + "id": 2686, "name": "_tokenOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1911, + "referencedDeclaration": 1942, "src": "13986:12:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage", "typeString": "struct EnumerableMap.UintToAddressMap storage ref" } }, - "id": 2657, + "id": 2688, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "set", "nodeType": "MemberAccess", - "referencedDeclaration": 3579, + "referencedDeclaration": 3610, "src": "13986:16:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$3550_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$3550_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$3581_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$3581_storage_ptr_$", "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" } }, - "id": 2660, + "id": 2691, "isConstant": false, "isLValue": false, "isPure": false, @@ -11005,7 +11005,7 @@ "typeString": "bool" } }, - "id": 2661, + "id": 2692, "nodeType": "ExpressionStatement", "src": "13986:29:11" }, @@ -11015,11 +11015,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2663, + "id": 2694, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2601, + "referencedDeclaration": 2632, "src": "14040:4:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11028,11 +11028,11 @@ }, { "argumentTypes": null, - "id": 2664, + "id": 2695, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2603, + "referencedDeclaration": 2634, "src": "14046:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11041,11 +11041,11 @@ }, { "argumentTypes": null, - "id": 2665, + "id": 2696, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2605, + "referencedDeclaration": 2636, "src": "14050:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11068,18 +11068,18 @@ "typeString": "uint256" } ], - "id": 2662, + "id": 2693, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2839, + "referencedDeclaration": 2870, "src": "14031:8:11", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2666, + "id": 2697, "isConstant": false, "isLValue": false, "isPure": false, @@ -11094,19 +11094,19 @@ "typeString": "tuple()" } }, - "id": 2667, + "id": 2698, "nodeType": "EmitStatement", "src": "14026:32:11" } ] }, "documentation": { - "id": 2599, + "id": 2630, "nodeType": "StructuredDocumentation", "src": "13188:313:11", "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." }, - "id": 2669, + "id": 2700, "implemented": true, "kind": "function", "modifiers": [], @@ -11114,17 +11114,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2606, + "id": 2637, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2601, + "id": 2632, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2669, + "scope": 2700, "src": "13525:12:11", "stateVariable": false, "storageLocation": "default", @@ -11133,7 +11133,7 @@ "typeString": "address" }, "typeName": { - "id": 2600, + "id": 2631, "name": "address", "nodeType": "ElementaryTypeName", "src": "13525:7:11", @@ -11148,12 +11148,12 @@ }, { "constant": false, - "id": 2603, + "id": 2634, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2669, + "scope": 2700, "src": "13539:10:11", "stateVariable": false, "storageLocation": "default", @@ -11162,7 +11162,7 @@ "typeString": "address" }, "typeName": { - "id": 2602, + "id": 2633, "name": "address", "nodeType": "ElementaryTypeName", "src": "13539:7:11", @@ -11177,12 +11177,12 @@ }, { "constant": false, - "id": 2605, + "id": 2636, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2669, + "scope": 2700, "src": "13551:15:11", "stateVariable": false, "storageLocation": "default", @@ -11191,7 +11191,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2604, + "id": 2635, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "13551:7:11", @@ -11207,12 +11207,12 @@ "src": "13524:43:11" }, "returnParameters": { - "id": 2607, + "id": 2638, "nodeType": "ParameterList", "parameters": [], "src": "13585:0:11" }, - "scope": 2794, + "scope": 2825, "src": "13506:559:11", "stateMutability": "nonpayable", "virtual": true, @@ -11220,7 +11220,7 @@ }, { "body": { - "id": 2690, + "id": 2721, "nodeType": "Block", "src": "14293:131:11", "statements": [ @@ -11233,11 +11233,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2679, + "id": 2710, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2672, + "referencedDeclaration": 2703, "src": "14319:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11252,18 +11252,18 @@ "typeString": "uint256" } ], - "id": 2678, + "id": 2709, "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2387, + "referencedDeclaration": 2418, "src": "14311:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 2680, + "id": 2711, "isConstant": false, "isLValue": false, "isPure": false, @@ -11281,7 +11281,7 @@ { "argumentTypes": null, "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 2681, + "id": 2712, "isConstant": false, "isLValue": false, "isPure": true, @@ -11308,7 +11308,7 @@ "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" } ], - "id": 2677, + "id": 2708, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11322,7 +11322,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2682, + "id": 2713, "isConstant": false, "isLValue": false, "isPure": false, @@ -11337,14 +11337,14 @@ "typeString": "tuple()" } }, - "id": 2683, + "id": 2714, "nodeType": "ExpressionStatement", "src": "14303:73:11" }, { "expression": { "argumentTypes": null, - "id": 2688, + "id": 2719, "isConstant": false, "isLValue": false, "isPure": false, @@ -11353,25 +11353,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2684, + "id": 2715, "name": "_tokenURIs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1929, + "referencedDeclaration": 1960, "src": "14386:10:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", "typeString": "mapping(uint256 => string storage ref)" } }, - "id": 2686, + "id": 2717, "indexExpression": { "argumentTypes": null, - "id": 2685, + "id": 2716, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2672, + "referencedDeclaration": 2703, "src": "14397:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11393,11 +11393,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2687, + "id": 2718, "name": "_tokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2674, + "referencedDeclaration": 2705, "src": "14408:9:11", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -11410,19 +11410,19 @@ "typeString": "string storage ref" } }, - "id": 2689, + "id": 2720, "nodeType": "ExpressionStatement", "src": "14386:31:11" } ] }, "documentation": { - "id": 2670, + "id": 2701, "nodeType": "StructuredDocumentation", "src": "14071:136:11", "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." }, - "id": 2691, + "id": 2722, "implemented": true, "kind": "function", "modifiers": [], @@ -11430,17 +11430,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2675, + "id": 2706, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2672, + "id": 2703, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2691, + "scope": 2722, "src": "14234:15:11", "stateVariable": false, "storageLocation": "default", @@ -11449,7 +11449,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2671, + "id": 2702, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "14234:7:11", @@ -11463,12 +11463,12 @@ }, { "constant": false, - "id": 2674, + "id": 2705, "mutability": "mutable", "name": "_tokenURI", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2691, + "scope": 2722, "src": "14251:23:11", "stateVariable": false, "storageLocation": "memory", @@ -11477,7 +11477,7 @@ "typeString": "string" }, "typeName": { - "id": 2673, + "id": 2704, "name": "string", "nodeType": "ElementaryTypeName", "src": "14251:6:11", @@ -11493,12 +11493,12 @@ "src": "14233:42:11" }, "returnParameters": { - "id": 2676, + "id": 2707, "nodeType": "ParameterList", "parameters": [], "src": "14293:0:11" }, - "scope": 2794, + "scope": 2825, "src": "14212:212:11", "stateMutability": "nonpayable", "virtual": true, @@ -11506,25 +11506,25 @@ }, { "body": { - "id": 2701, + "id": 2732, "nodeType": "Block", "src": "14709:36:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 2699, + "id": 2730, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2697, + "id": 2728, "name": "_baseURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1931, + "referencedDeclaration": 1962, "src": "14719:8:11", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -11535,11 +11535,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2698, + "id": 2729, "name": "baseURI_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2694, + "referencedDeclaration": 2725, "src": "14730:8:11", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -11552,19 +11552,19 @@ "typeString": "string storage ref" } }, - "id": 2700, + "id": 2731, "nodeType": "ExpressionStatement", "src": "14719:19:11" } ] }, "documentation": { - "id": 2692, + "id": 2723, "nodeType": "StructuredDocumentation", "src": "14430:212:11", "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." }, - "id": 2702, + "id": 2733, "implemented": true, "kind": "function", "modifiers": [], @@ -11572,17 +11572,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2695, + "id": 2726, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2694, + "id": 2725, "mutability": "mutable", "name": "baseURI_", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2702, + "scope": 2733, "src": "14668:22:11", "stateVariable": false, "storageLocation": "memory", @@ -11591,7 +11591,7 @@ "typeString": "string" }, "typeName": { - "id": 2693, + "id": 2724, "name": "string", "nodeType": "ElementaryTypeName", "src": "14668:6:11", @@ -11607,12 +11607,12 @@ "src": "14667:24:11" }, "returnParameters": { - "id": 2696, + "id": 2727, "nodeType": "ParameterList", "parameters": [], "src": "14709:0:11" }, - "scope": 2794, + "scope": 2825, "src": "14647:98:11", "stateMutability": "nonpayable", "virtual": true, @@ -11620,14 +11620,14 @@ }, { "body": { - "id": 2759, + "id": 2790, "nodeType": "Block", "src": "15428:459:11", "statements": [ { "condition": { "argumentTypes": null, - "id": 2719, + "id": 2750, "isConstant": false, "isLValue": false, "isPure": false, @@ -11643,32 +11643,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 2716, + "id": 2747, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2707, + "referencedDeclaration": 2738, "src": "15443:2:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2717, + "id": 2748, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isContract", "nodeType": "MemberAccess", - "referencedDeclaration": 3045, + "referencedDeclaration": 3076, "src": "15443:13:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", "typeString": "function (address) view returns (bool)" } }, - "id": 2718, + "id": 2749, "isConstant": false, "isLValue": false, "isPure": false, @@ -11689,11 +11689,11 @@ } }, "falseBody": null, - "id": 2723, + "id": 2754, "nodeType": "IfStatement", "src": "15438:58:11", "trueBody": { - "id": 2722, + "id": 2753, "nodeType": "Block", "src": "15460:36:11", "statements": [ @@ -11701,7 +11701,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2720, + "id": 2751, "isConstant": false, "isLValue": false, "isPure": true, @@ -11716,8 +11716,8 @@ }, "value": "true" }, - "functionReturnParameters": 2715, - "id": 2721, + "functionReturnParameters": 2746, + "id": 2752, "nodeType": "Return", "src": "15474:11:11" } @@ -11726,17 +11726,17 @@ }, { "assignments": [ - 2725 + 2756 ], "declarations": [ { "constant": false, - "id": 2725, + "id": 2756, "mutability": "mutable", "name": "returndata", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2759, + "scope": 2790, "src": "15505:23:11", "stateVariable": false, "storageLocation": "memory", @@ -11745,7 +11745,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2724, + "id": 2755, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "15505:5:11", @@ -11758,7 +11758,7 @@ "visibility": "internal" } ], - "id": 2743, + "id": 2774, "initialValue": { "argumentTypes": null, "arguments": [ @@ -11774,11 +11774,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2731, + "id": 2762, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2707, + "referencedDeclaration": 2738, "src": "15599:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11793,18 +11793,18 @@ "typeString": "address" } ], - "id": 2730, + "id": 2761, "name": "IERC721Receiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3016, + "referencedDeclaration": 3047, "src": "15583:15:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$3016_$", + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$3047_$", "typeString": "type(contract IERC721Receiver)" } }, - "id": 2732, + "id": 2763, "isConstant": false, "isLValue": false, "isPure": false, @@ -11815,25 +11815,25 @@ "src": "15583:19:11", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$3016", + "typeIdentifier": "t_contract$_IERC721Receiver_$3047", "typeString": "contract IERC721Receiver" } }, - "id": 2733, + "id": 2764, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "onERC721Received", "nodeType": "MemberAccess", - "referencedDeclaration": 3015, + "referencedDeclaration": 3046, "src": "15583:36:11", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" } }, - "id": 2734, + "id": 2765, "isConstant": false, "isLValue": false, "isPure": false, @@ -11852,18 +11852,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2735, + "id": 2766, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "15642:10:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 2736, + "id": 2767, "isConstant": false, "isLValue": false, "isPure": false, @@ -11880,11 +11880,11 @@ }, { "argumentTypes": null, - "id": 2737, + "id": 2768, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2705, + "referencedDeclaration": 2736, "src": "15668:4:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11893,11 +11893,11 @@ }, { "argumentTypes": null, - "id": 2738, + "id": 2769, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2709, + "referencedDeclaration": 2740, "src": "15686:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11906,11 +11906,11 @@ }, { "argumentTypes": null, - "id": 2739, + "id": 2770, "name": "_data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2711, + "referencedDeclaration": 2742, "src": "15707:5:11", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -11943,7 +11943,7 @@ ], "expression": { "argumentTypes": null, - "id": 2728, + "id": 2759, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -11954,7 +11954,7 @@ "typeString": "abi" } }, - "id": 2729, + "id": 2760, "isConstant": false, "isLValue": false, "isPure": true, @@ -11968,7 +11968,7 @@ "typeString": "function (bytes4) pure returns (bytes memory)" } }, - "id": 2740, + "id": 2771, "isConstant": false, "isLValue": false, "isPure": false, @@ -11986,7 +11986,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 2741, + "id": 2772, "isConstant": false, "isLValue": false, "isPure": true, @@ -12015,32 +12015,32 @@ ], "expression": { "argumentTypes": null, - "id": 2726, + "id": 2757, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2707, + "referencedDeclaration": 2738, "src": "15531:2:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2727, + "id": 2758, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "functionCall", "nodeType": "MemberAccess", - "referencedDeclaration": 3116, + "referencedDeclaration": 3147, "src": "15531:15:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" } }, - "id": 2742, + "id": 2773, "isConstant": false, "isLValue": false, "isPure": false, @@ -12060,17 +12060,17 @@ }, { "assignments": [ - 2745 + 2776 ], "declarations": [ { "constant": false, - "id": 2745, + "id": 2776, "mutability": "mutable", "name": "retval", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2759, + "scope": 2790, "src": "15787:13:11", "stateVariable": false, "storageLocation": "default", @@ -12079,7 +12079,7 @@ "typeString": "bytes4" }, "typeName": { - "id": 2744, + "id": 2775, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "15787:6:11", @@ -12092,17 +12092,17 @@ "visibility": "internal" } ], - "id": 2753, + "id": 2784, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2748, + "id": 2779, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2725, + "referencedDeclaration": 2756, "src": "15814:10:11", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -12114,7 +12114,7 @@ "components": [ { "argumentTypes": null, - "id": 2750, + "id": 2781, "isConstant": false, "isLValue": false, "isPure": true, @@ -12126,7 +12126,7 @@ "typeString": "type(bytes4)" }, "typeName": { - "id": 2749, + "id": 2780, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "15827:6:11", @@ -12137,7 +12137,7 @@ } } ], - "id": 2751, + "id": 2782, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -12164,7 +12164,7 @@ ], "expression": { "argumentTypes": null, - "id": 2746, + "id": 2777, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -12175,7 +12175,7 @@ "typeString": "abi" } }, - "id": 2747, + "id": 2778, "isConstant": false, "isLValue": false, "isPure": true, @@ -12189,7 +12189,7 @@ "typeString": "function () pure" } }, - "id": 2752, + "id": 2783, "isConstant": false, "isLValue": false, "isPure": false, @@ -12217,18 +12217,18 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 2756, + "id": 2787, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2754, + "id": 2785, "name": "retval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2745, + "referencedDeclaration": 2776, "src": "15853:6:11", "typeDescriptions": { "typeIdentifier": "t_bytes4", @@ -12239,11 +12239,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2755, + "id": 2786, "name": "_ERC721_RECEIVED", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1905, + "referencedDeclaration": 1936, "src": "15863:16:11", "typeDescriptions": { "typeIdentifier": "t_bytes4", @@ -12257,7 +12257,7 @@ } } ], - "id": 2757, + "id": 2788, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -12270,20 +12270,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 2715, - "id": 2758, + "functionReturnParameters": 2746, + "id": 2789, "nodeType": "Return", "src": "15845:35:11" } ] }, "documentation": { - "id": 2703, + "id": 2734, "nodeType": "StructuredDocumentation", "src": "14751:542:11", "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" }, - "id": 2760, + "id": 2791, "implemented": true, "kind": "function", "modifiers": [], @@ -12291,17 +12291,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2712, + "id": 2743, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2705, + "id": 2736, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2760, + "scope": 2791, "src": "15330:12:11", "stateVariable": false, "storageLocation": "default", @@ -12310,7 +12310,7 @@ "typeString": "address" }, "typeName": { - "id": 2704, + "id": 2735, "name": "address", "nodeType": "ElementaryTypeName", "src": "15330:7:11", @@ -12325,12 +12325,12 @@ }, { "constant": false, - "id": 2707, + "id": 2738, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2760, + "scope": 2791, "src": "15344:10:11", "stateVariable": false, "storageLocation": "default", @@ -12339,7 +12339,7 @@ "typeString": "address" }, "typeName": { - "id": 2706, + "id": 2737, "name": "address", "nodeType": "ElementaryTypeName", "src": "15344:7:11", @@ -12354,12 +12354,12 @@ }, { "constant": false, - "id": 2709, + "id": 2740, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2760, + "scope": 2791, "src": "15356:15:11", "stateVariable": false, "storageLocation": "default", @@ -12368,7 +12368,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2708, + "id": 2739, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "15356:7:11", @@ -12382,12 +12382,12 @@ }, { "constant": false, - "id": 2711, + "id": 2742, "mutability": "mutable", "name": "_data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2760, + "scope": 2791, "src": "15373:18:11", "stateVariable": false, "storageLocation": "memory", @@ -12396,7 +12396,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2710, + "id": 2741, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "15373:5:11", @@ -12412,17 +12412,17 @@ "src": "15329:63:11" }, "returnParameters": { - "id": 2715, + "id": 2746, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2714, + "id": 2745, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2760, + "scope": 2791, "src": "15418:4:11", "stateVariable": false, "storageLocation": "default", @@ -12431,7 +12431,7 @@ "typeString": "bool" }, "typeName": { - "id": 2713, + "id": 2744, "name": "bool", "nodeType": "ElementaryTypeName", "src": "15418:4:11", @@ -12446,7 +12446,7 @@ ], "src": "15417:6:11" }, - "scope": 2794, + "scope": 2825, "src": "15298:589:11", "stateMutability": "nonpayable", "virtual": false, @@ -12454,14 +12454,14 @@ }, { "body": { - "id": 2781, + "id": 2812, "nodeType": "Block", "src": "15948:100:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 2771, + "id": 2802, "isConstant": false, "isLValue": false, "isPure": false, @@ -12470,25 +12470,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2767, + "id": 2798, "name": "_tokenApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1915, + "referencedDeclaration": 1946, "src": "15958:15:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, - "id": 2769, + "id": 2800, "indexExpression": { "argumentTypes": null, - "id": 2768, + "id": 2799, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2764, + "referencedDeclaration": 2795, "src": "15974:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12510,11 +12510,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2770, + "id": 2801, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2762, + "referencedDeclaration": 2793, "src": "15985:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12527,7 +12527,7 @@ "typeString": "address" } }, - "id": 2772, + "id": 2803, "nodeType": "ExpressionStatement", "src": "15958:29:11" }, @@ -12540,11 +12540,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2775, + "id": 2806, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2764, + "referencedDeclaration": 2795, "src": "16019:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12559,18 +12559,18 @@ "typeString": "uint256" } ], - "id": 2774, + "id": 2805, "name": "ownerOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2011, + "referencedDeclaration": 2042, "src": "16011:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, - "id": 2776, + "id": 2807, "isConstant": false, "isLValue": false, "isPure": false, @@ -12587,11 +12587,11 @@ }, { "argumentTypes": null, - "id": 2777, + "id": 2808, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2762, + "referencedDeclaration": 2793, "src": "16029:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12600,11 +12600,11 @@ }, { "argumentTypes": null, - "id": 2778, + "id": 2809, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2764, + "referencedDeclaration": 2795, "src": "16033:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12627,18 +12627,18 @@ "typeString": "uint256" } ], - "id": 2773, + "id": 2804, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2848, + "referencedDeclaration": 2879, "src": "16002:8:11", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2779, + "id": 2810, "isConstant": false, "isLValue": false, "isPure": false, @@ -12653,14 +12653,14 @@ "typeString": "tuple()" } }, - "id": 2780, + "id": 2811, "nodeType": "EmitStatement", "src": "15997:44:11" } ] }, "documentation": null, - "id": 2782, + "id": 2813, "implemented": true, "kind": "function", "modifiers": [], @@ -12668,17 +12668,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2765, + "id": 2796, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2762, + "id": 2793, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2782, + "scope": 2813, "src": "15911:10:11", "stateVariable": false, "storageLocation": "default", @@ -12687,7 +12687,7 @@ "typeString": "address" }, "typeName": { - "id": 2761, + "id": 2792, "name": "address", "nodeType": "ElementaryTypeName", "src": "15911:7:11", @@ -12702,12 +12702,12 @@ }, { "constant": false, - "id": 2764, + "id": 2795, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2782, + "scope": 2813, "src": "15923:15:11", "stateVariable": false, "storageLocation": "default", @@ -12716,7 +12716,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2763, + "id": 2794, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "15923:7:11", @@ -12732,12 +12732,12 @@ "src": "15910:29:11" }, "returnParameters": { - "id": 2766, + "id": 2797, "nodeType": "ParameterList", "parameters": [], "src": "15948:0:11" }, - "scope": 2794, + "scope": 2825, "src": "15893:155:11", "stateMutability": "nonpayable", "virtual": false, @@ -12745,18 +12745,18 @@ }, { "body": { - "id": 2792, + "id": 2823, "nodeType": "Block", "src": "16734:3:11", "statements": [] }, "documentation": { - "id": 2783, + "id": 2814, "nodeType": "StructuredDocumentation", "src": "16054:585:11", "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." }, - "id": 2793, + "id": 2824, "implemented": true, "kind": "function", "modifiers": [], @@ -12764,17 +12764,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2790, + "id": 2821, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2785, + "id": 2816, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2793, + "scope": 2824, "src": "16674:12:11", "stateVariable": false, "storageLocation": "default", @@ -12783,7 +12783,7 @@ "typeString": "address" }, "typeName": { - "id": 2784, + "id": 2815, "name": "address", "nodeType": "ElementaryTypeName", "src": "16674:7:11", @@ -12798,12 +12798,12 @@ }, { "constant": false, - "id": 2787, + "id": 2818, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2793, + "scope": 2824, "src": "16688:10:11", "stateVariable": false, "storageLocation": "default", @@ -12812,7 +12812,7 @@ "typeString": "address" }, "typeName": { - "id": 2786, + "id": 2817, "name": "address", "nodeType": "ElementaryTypeName", "src": "16688:7:11", @@ -12827,12 +12827,12 @@ }, { "constant": false, - "id": 2789, + "id": 2820, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2793, + "scope": 2824, "src": "16700:15:11", "stateVariable": false, "storageLocation": "default", @@ -12841,7 +12841,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2788, + "id": 2819, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "16700:7:11", @@ -12857,19 +12857,19 @@ "src": "16673:43:11" }, "returnParameters": { - "id": 2791, + "id": 2822, "nodeType": "ParameterList", "parameters": [], "src": "16734:0:11" }, - "scope": 2794, + "scope": 2825, "src": "16644:93:11", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" } ], - "scope": 2795, + "scope": 2826, "src": "561:16178:11" } ], @@ -12879,15 +12879,15 @@ "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol", "exportedSymbols": { "ERC721": [ - 2794 + 2825 ] }, - "id": 2795, + "id": 2826, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1865, + "id": 1896, "literals": [ "solidity", "^", @@ -12900,10 +12900,10 @@ { "absolutePath": "@openzeppelin/contracts/GSN/Context.sol", "file": "../../GSN/Context.sol", - "id": 1866, + "id": 1897, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 1136, + "scope": 2826, + "sourceUnit": 1167, "src": "58:31:11", "symbolAliases": [], "unitAlias": "" @@ -12911,10 +12911,10 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", "file": "./IERC721.sol", - "id": 1867, + "id": 1898, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 2941, + "scope": 2826, + "sourceUnit": 2972, "src": "90:23:11", "symbolAliases": [], "unitAlias": "" @@ -12922,10 +12922,10 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Metadata.sol", "file": "./IERC721Metadata.sol", - "id": 1868, + "id": 1899, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 2999, + "scope": 2826, + "sourceUnit": 3030, "src": "114:31:11", "symbolAliases": [], "unitAlias": "" @@ -12933,10 +12933,10 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol", "file": "./IERC721Enumerable.sol", - "id": 1869, + "id": 1900, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 2972, + "scope": 2826, + "sourceUnit": 3003, "src": "146:33:11", "symbolAliases": [], "unitAlias": "" @@ -12944,10 +12944,10 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", "file": "./IERC721Receiver.sol", - "id": 1870, + "id": 1901, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 3017, + "scope": 2826, + "sourceUnit": 3048, "src": "180:31:11", "symbolAliases": [], "unitAlias": "" @@ -12955,10 +12955,10 @@ { "absolutePath": "@openzeppelin/contracts/introspection/ERC165.sol", "file": "../../introspection/ERC165.sol", - "id": 1871, + "id": 1902, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 1656, + "scope": 2826, + "sourceUnit": 1687, "src": "212:40:11", "symbolAliases": [], "unitAlias": "" @@ -12966,10 +12966,10 @@ { "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", "file": "../../math/SafeMath.sol", - "id": 1872, + "id": 1903, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 1864, + "scope": 2826, + "sourceUnit": 1895, "src": "253:33:11", "symbolAliases": [], "unitAlias": "" @@ -12977,10 +12977,10 @@ { "absolutePath": "@openzeppelin/contracts/utils/Address.sol", "file": "../../utils/Address.sol", - "id": 1873, + "id": 1904, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 3221, + "scope": 2826, + "sourceUnit": 3252, "src": "287:33:11", "symbolAliases": [], "unitAlias": "" @@ -12988,10 +12988,10 @@ { "absolutePath": "@openzeppelin/contracts/utils/EnumerableSet.sol", "file": "../../utils/EnumerableSet.sol", - "id": 1874, + "id": 1905, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 4121, + "scope": 2826, + "sourceUnit": 4152, "src": "321:39:11", "symbolAliases": [], "unitAlias": "" @@ -12999,10 +12999,10 @@ { "absolutePath": "@openzeppelin/contracts/utils/EnumerableMap.sol", "file": "../../utils/EnumerableMap.sol", - "id": 1875, + "id": 1906, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 3726, + "scope": 2826, + "sourceUnit": 3757, "src": "361:39:11", "symbolAliases": [], "unitAlias": "" @@ -13010,10 +13010,10 @@ { "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", "file": "../../utils/Strings.sol", - "id": 1876, + "id": 1907, "nodeType": "ImportDirective", - "scope": 2795, - "sourceUnit": 4298, + "scope": 2826, + "sourceUnit": 4329, "src": "401:33:11", "symbolAliases": [], "unitAlias": "" @@ -13025,17 +13025,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1878, + "id": 1909, "name": "Context", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1135, + "referencedDeclaration": 1166, "src": "580:7:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$1135", + "typeIdentifier": "t_contract$_Context_$1166", "typeString": "contract Context" } }, - "id": 1879, + "id": 1910, "nodeType": "InheritanceSpecifier", "src": "580:7:11" }, @@ -13043,17 +13043,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1880, + "id": 1911, "name": "ERC165", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1655, + "referencedDeclaration": 1686, "src": "589:6:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$1655", + "typeIdentifier": "t_contract$_ERC165_$1686", "typeString": "contract ERC165" } }, - "id": 1881, + "id": 1912, "nodeType": "InheritanceSpecifier", "src": "589:6:11" }, @@ -13061,17 +13061,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1882, + "id": 1913, "name": "IERC721", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2940, + "referencedDeclaration": 2971, "src": "597:7:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$2940", + "typeIdentifier": "t_contract$_IERC721_$2971", "typeString": "contract IERC721" } }, - "id": 1883, + "id": 1914, "nodeType": "InheritanceSpecifier", "src": "597:7:11" }, @@ -13079,17 +13079,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1884, + "id": 1915, "name": "IERC721Metadata", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2998, + "referencedDeclaration": 3029, "src": "606:15:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$2998", + "typeIdentifier": "t_contract$_IERC721Metadata_$3029", "typeString": "contract IERC721Metadata" } }, - "id": 1885, + "id": 1916, "nodeType": "InheritanceSpecifier", "src": "606:15:11" }, @@ -13097,68 +13097,68 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1886, + "id": 1917, "name": "IERC721Enumerable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2971, + "referencedDeclaration": 3002, "src": "623:17:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$2971", + "typeIdentifier": "t_contract$_IERC721Enumerable_$3002", "typeString": "contract IERC721Enumerable" } }, - "id": 1887, + "id": 1918, "nodeType": "InheritanceSpecifier", "src": "623:17:11" } ], "contractDependencies": [ - 1135, - 1655, - 1667, - 2940, + 1166, + 1686, + 1698, 2971, - 2998 + 3002, + 3029 ], "contractKind": "contract", "documentation": { - "id": 1877, + "id": 1908, "nodeType": "StructuredDocumentation", "src": "436:124:11", "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" }, "fullyImplemented": true, - "id": 2794, + "id": 2825, "linearizedBaseContracts": [ - 2794, + 2825, + 3002, + 3029, 2971, - 2998, - 2940, - 1655, - 1667, - 1135 + 1686, + 1698, + 1166 ], "name": "ERC721", "nodeType": "ContractDefinition", "nodes": [ { - "id": 1890, + "id": 1921, "libraryName": { "contractScope": null, - "id": 1888, + "id": 1919, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1863, + "referencedDeclaration": 1894, "src": "653:8:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1863", + "typeIdentifier": "t_contract$_SafeMath_$1894", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "647:27:11", "typeName": { - "id": 1889, + "id": 1920, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "666:7:11", @@ -13169,23 +13169,23 @@ } }, { - "id": 1893, + "id": 1924, "libraryName": { "contractScope": null, - "id": 1891, + "id": 1922, "name": "Address", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3220, + "referencedDeclaration": 3251, "src": "685:7:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$3220", + "typeIdentifier": "t_contract$_Address_$3251", "typeString": "library Address" } }, "nodeType": "UsingForDirective", "src": "679:26:11", "typeName": { - "id": 1892, + "id": 1923, "name": "address", "nodeType": "ElementaryTypeName", "src": "697:7:11", @@ -13197,16 +13197,16 @@ } }, { - "id": 1896, + "id": 1927, "libraryName": { "contractScope": null, - "id": 1894, + "id": 1925, "name": "EnumerableSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4120, + "referencedDeclaration": 4151, "src": "716:13:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_EnumerableSet_$4120", + "typeIdentifier": "t_contract$_EnumerableSet_$4151", "typeString": "library EnumerableSet" } }, @@ -13214,28 +13214,28 @@ "src": "710:46:11", "typeName": { "contractScope": null, - "id": 1895, + "id": 1926, "name": "EnumerableSet.UintSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4025, + "referencedDeclaration": 4056, "src": "734:21:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" } } }, { - "id": 1899, + "id": 1930, "libraryName": { "contractScope": null, - "id": 1897, + "id": 1928, "name": "EnumerableMap", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3725, + "referencedDeclaration": 3756, "src": "767:13:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_EnumerableMap_$3725", + "typeIdentifier": "t_contract$_EnumerableMap_$3756", "typeString": "library EnumerableMap" } }, @@ -13243,35 +13243,35 @@ "src": "761:55:11", "typeName": { "contractScope": null, - "id": 1898, + "id": 1929, "name": "EnumerableMap.UintToAddressMap", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3550, + "referencedDeclaration": 3581, "src": "785:30:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" } } }, { - "id": 1902, + "id": 1933, "libraryName": { "contractScope": null, - "id": 1900, + "id": 1931, "name": "Strings", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4297, + "referencedDeclaration": 4328, "src": "827:7:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_Strings_$4297", + "typeIdentifier": "t_contract$_Strings_$4328", "typeString": "library Strings" } }, "nodeType": "UsingForDirective", "src": "821:26:11", "typeName": { - "id": 1901, + "id": 1932, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "839:7:11", @@ -13283,12 +13283,12 @@ }, { "constant": true, - "id": 1905, + "id": 1936, "mutability": "constant", "name": "_ERC721_RECEIVED", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "1025:53:11", "stateVariable": true, "storageLocation": "default", @@ -13297,7 +13297,7 @@ "typeString": "bytes4" }, "typeName": { - "id": 1903, + "id": 1934, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "1025:6:11", @@ -13309,7 +13309,7 @@ "value": { "argumentTypes": null, "hexValue": "30783135306237613032", - "id": 1904, + "id": 1935, "isConstant": false, "isLValue": false, "isPure": true, @@ -13328,23 +13328,23 @@ }, { "constant": false, - "id": 1909, + "id": 1940, "mutability": "mutable", "name": "_holderTokens", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "1162:64:11", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4025_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4056_storage_$", "typeString": "mapping(address => struct EnumerableSet.UintSet)" }, "typeName": { - "id": 1908, + "id": 1939, "keyType": { - "id": 1906, + "id": 1937, "name": "address", "nodeType": "ElementaryTypeName", "src": "1171:7:11", @@ -13356,18 +13356,18 @@ "nodeType": "Mapping", "src": "1162:42:11", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4025_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4056_storage_$", "typeString": "mapping(address => struct EnumerableSet.UintSet)" }, "valueType": { "contractScope": null, - "id": 1907, + "id": 1938, "name": "EnumerableSet.UintSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4025, + "referencedDeclaration": 4056, "src": "1182:21:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" } } @@ -13377,28 +13377,28 @@ }, { "constant": false, - "id": 1911, + "id": 1942, "mutability": "mutable", "name": "_tokenOwners", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "1290:51:11", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage", "typeString": "struct EnumerableMap.UintToAddressMap" }, "typeName": { "contractScope": null, - "id": 1910, + "id": 1941, "name": "EnumerableMap.UintToAddressMap", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3550, + "referencedDeclaration": 3581, "src": "1290:30:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" } }, @@ -13407,12 +13407,12 @@ }, { "constant": false, - "id": 1915, + "id": 1946, "mutability": "mutable", "name": "_tokenApprovals", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "1397:52:11", "stateVariable": true, "storageLocation": "default", @@ -13421,9 +13421,9 @@ "typeString": "mapping(uint256 => address)" }, "typeName": { - "id": 1914, + "id": 1945, "keyType": { - "id": 1912, + "id": 1943, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1406:7:11", @@ -13439,7 +13439,7 @@ "typeString": "mapping(uint256 => address)" }, "valueType": { - "id": 1913, + "id": 1944, "name": "address", "nodeType": "ElementaryTypeName", "src": "1417:7:11", @@ -13455,12 +13455,12 @@ }, { "constant": false, - "id": 1921, + "id": 1952, "mutability": "mutable", "name": "_operatorApprovals", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "1504:73:11", "stateVariable": true, "storageLocation": "default", @@ -13469,9 +13469,9 @@ "typeString": "mapping(address => mapping(address => bool))" }, "typeName": { - "id": 1920, + "id": 1951, "keyType": { - "id": 1916, + "id": 1947, "name": "address", "nodeType": "ElementaryTypeName", "src": "1513:7:11", @@ -13487,9 +13487,9 @@ "typeString": "mapping(address => mapping(address => bool))" }, "valueType": { - "id": 1919, + "id": 1950, "keyType": { - "id": 1917, + "id": 1948, "name": "address", "nodeType": "ElementaryTypeName", "src": "1533:7:11", @@ -13505,7 +13505,7 @@ "typeString": "mapping(address => bool)" }, "valueType": { - "id": 1918, + "id": 1949, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1544:4:11", @@ -13521,12 +13521,12 @@ }, { "constant": false, - "id": 1923, + "id": 1954, "mutability": "mutable", "name": "_name", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "1602:20:11", "stateVariable": true, "storageLocation": "default", @@ -13535,7 +13535,7 @@ "typeString": "string" }, "typeName": { - "id": 1922, + "id": 1953, "name": "string", "nodeType": "ElementaryTypeName", "src": "1602:6:11", @@ -13549,12 +13549,12 @@ }, { "constant": false, - "id": 1925, + "id": 1956, "mutability": "mutable", "name": "_symbol", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "1649:22:11", "stateVariable": true, "storageLocation": "default", @@ -13563,7 +13563,7 @@ "typeString": "string" }, "typeName": { - "id": 1924, + "id": 1955, "name": "string", "nodeType": "ElementaryTypeName", "src": "1649:6:11", @@ -13577,12 +13577,12 @@ }, { "constant": false, - "id": 1929, + "id": 1960, "mutability": "mutable", "name": "_tokenURIs", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "1717:45:11", "stateVariable": true, "storageLocation": "default", @@ -13591,9 +13591,9 @@ "typeString": "mapping(uint256 => string)" }, "typeName": { - "id": 1928, + "id": 1959, "keyType": { - "id": 1926, + "id": 1957, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1725:7:11", @@ -13609,7 +13609,7 @@ "typeString": "mapping(uint256 => string)" }, "valueType": { - "id": 1927, + "id": 1958, "name": "string", "nodeType": "ElementaryTypeName", "src": "1736:6:11", @@ -13624,12 +13624,12 @@ }, { "constant": false, - "id": 1931, + "id": 1962, "mutability": "mutable", "name": "_baseURI", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "1785:23:11", "stateVariable": true, "storageLocation": "default", @@ -13638,7 +13638,7 @@ "typeString": "string" }, "typeName": { - "id": 1930, + "id": 1961, "name": "string", "nodeType": "ElementaryTypeName", "src": "1785:6:11", @@ -13652,12 +13652,12 @@ }, { "constant": true, - "id": 1934, + "id": 1965, "mutability": "constant", "name": "_INTERFACE_ID_ERC721", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "2683:57:11", "stateVariable": true, "storageLocation": "default", @@ -13666,7 +13666,7 @@ "typeString": "bytes4" }, "typeName": { - "id": 1932, + "id": 1963, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "2683:6:11", @@ -13678,7 +13678,7 @@ "value": { "argumentTypes": null, "hexValue": "30783830616335386364", - "id": 1933, + "id": 1964, "isConstant": false, "isLValue": false, "isPure": true, @@ -13697,12 +13697,12 @@ }, { "constant": true, - "id": 1937, + "id": 1968, "mutability": "constant", "name": "_INTERFACE_ID_ERC721_METADATA", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "3006:66:11", "stateVariable": true, "storageLocation": "default", @@ -13711,7 +13711,7 @@ "typeString": "bytes4" }, "typeName": { - "id": 1935, + "id": 1966, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "3006:6:11", @@ -13723,7 +13723,7 @@ "value": { "argumentTypes": null, "hexValue": "30783562356531333966", - "id": 1936, + "id": 1967, "isConstant": false, "isLValue": false, "isPure": true, @@ -13742,12 +13742,12 @@ }, { "constant": true, - "id": 1940, + "id": 1971, "mutability": "constant", "name": "_INTERFACE_ID_ERC721_ENUMERABLE", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2794, + "scope": 2825, "src": "3377:68:11", "stateVariable": true, "storageLocation": "default", @@ -13756,7 +13756,7 @@ "typeString": "bytes4" }, "typeName": { - "id": 1938, + "id": 1969, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "3377:6:11", @@ -13768,7 +13768,7 @@ "value": { "argumentTypes": null, "hexValue": "30783738306539643633", - "id": 1939, + "id": 1970, "isConstant": false, "isLValue": false, "isPure": true, @@ -13787,25 +13787,25 @@ }, { "body": { - "id": 1968, + "id": 1999, "nodeType": "Block", "src": "3627:303:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 1950, + "id": 1981, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1948, + "id": 1979, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1923, + "referencedDeclaration": 1954, "src": "3637:5:11", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -13816,11 +13816,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1949, + "id": 1980, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1943, + "referencedDeclaration": 1974, "src": "3645:4:11", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -13833,25 +13833,25 @@ "typeString": "string storage ref" } }, - "id": 1951, + "id": 1982, "nodeType": "ExpressionStatement", "src": "3637:12:11" }, { "expression": { "argumentTypes": null, - "id": 1954, + "id": 1985, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1952, + "id": 1983, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1925, + "referencedDeclaration": 1956, "src": "3659:7:11", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -13862,11 +13862,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1953, + "id": 1984, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1945, + "referencedDeclaration": 1976, "src": "3669:6:11", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -13879,7 +13879,7 @@ "typeString": "string storage ref" } }, - "id": 1955, + "id": 1986, "nodeType": "ExpressionStatement", "src": "3659:16:11" }, @@ -13889,11 +13889,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1957, + "id": 1988, "name": "_INTERFACE_ID_ERC721", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1934, + "referencedDeclaration": 1965, "src": "3782:20:11", "typeDescriptions": { "typeIdentifier": "t_bytes4", @@ -13908,18 +13908,18 @@ "typeString": "bytes4" } ], - "id": 1956, + "id": 1987, "name": "_registerInterface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1654, + "referencedDeclaration": 1685, "src": "3763:18:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, - "id": 1958, + "id": 1989, "isConstant": false, "isLValue": false, "isPure": false, @@ -13934,7 +13934,7 @@ "typeString": "tuple()" } }, - "id": 1959, + "id": 1990, "nodeType": "ExpressionStatement", "src": "3763:40:11" }, @@ -13944,11 +13944,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1961, + "id": 1992, "name": "_INTERFACE_ID_ERC721_METADATA", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1937, + "referencedDeclaration": 1968, "src": "3832:29:11", "typeDescriptions": { "typeIdentifier": "t_bytes4", @@ -13963,18 +13963,18 @@ "typeString": "bytes4" } ], - "id": 1960, + "id": 1991, "name": "_registerInterface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1654, + "referencedDeclaration": 1685, "src": "3813:18:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, - "id": 1962, + "id": 1993, "isConstant": false, "isLValue": false, "isPure": false, @@ -13989,7 +13989,7 @@ "typeString": "tuple()" } }, - "id": 1963, + "id": 1994, "nodeType": "ExpressionStatement", "src": "3813:49:11" }, @@ -13999,11 +13999,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1965, + "id": 1996, "name": "_INTERFACE_ID_ERC721_ENUMERABLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1940, + "referencedDeclaration": 1971, "src": "3891:31:11", "typeDescriptions": { "typeIdentifier": "t_bytes4", @@ -14018,18 +14018,18 @@ "typeString": "bytes4" } ], - "id": 1964, + "id": 1995, "name": "_registerInterface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1654, + "referencedDeclaration": 1685, "src": "3872:18:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, - "id": 1966, + "id": 1997, "isConstant": false, "isLValue": false, "isPure": false, @@ -14044,19 +14044,19 @@ "typeString": "tuple()" } }, - "id": 1967, + "id": 1998, "nodeType": "ExpressionStatement", "src": "3872:51:11" } ] }, "documentation": { - "id": 1941, + "id": 1972, "nodeType": "StructuredDocumentation", "src": "3452:108:11", "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." }, - "id": 1969, + "id": 2000, "implemented": true, "kind": "constructor", "modifiers": [], @@ -14064,17 +14064,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1946, + "id": 1977, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1943, + "id": 1974, "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1969, + "scope": 2000, "src": "3578:18:11", "stateVariable": false, "storageLocation": "memory", @@ -14083,7 +14083,7 @@ "typeString": "string" }, "typeName": { - "id": 1942, + "id": 1973, "name": "string", "nodeType": "ElementaryTypeName", "src": "3578:6:11", @@ -14097,12 +14097,12 @@ }, { "constant": false, - "id": 1945, + "id": 1976, "mutability": "mutable", "name": "symbol", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1969, + "scope": 2000, "src": "3598:20:11", "stateVariable": false, "storageLocation": "memory", @@ -14111,7 +14111,7 @@ "typeString": "string" }, "typeName": { - "id": 1944, + "id": 1975, "name": "string", "nodeType": "ElementaryTypeName", "src": "3598:6:11", @@ -14127,12 +14127,12 @@ "src": "3577:42:11" }, "returnParameters": { - "id": 1947, + "id": 1978, "nodeType": "ParameterList", "parameters": [], "src": "3627:0:11" }, - "scope": 2794, + "scope": 2825, "src": "3565:365:11", "stateMutability": "nonpayable", "virtual": false, @@ -14140,10 +14140,10 @@ }, { "baseFunctions": [ - 2865 + 2896 ], "body": { - "id": 1994, + "id": 2025, "nodeType": "Block", "src": "4062:138:11", "statements": [ @@ -14157,18 +14157,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1984, + "id": 2015, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1979, + "id": 2010, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1972, + "referencedDeclaration": 2003, "src": "4080:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14183,7 +14183,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1982, + "id": 2013, "isConstant": false, "isLValue": false, "isPure": true, @@ -14206,7 +14206,7 @@ "typeString": "int_const 0" } ], - "id": 1981, + "id": 2012, "isConstant": false, "isLValue": false, "isPure": true, @@ -14218,7 +14218,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 1980, + "id": 2011, "name": "address", "nodeType": "ElementaryTypeName", "src": "4089:7:11", @@ -14228,7 +14228,7 @@ } } }, - "id": 1983, + "id": 2014, "isConstant": false, "isLValue": false, "isPure": true, @@ -14252,7 +14252,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 1985, + "id": 2016, "isConstant": false, "isLValue": false, "isPure": true, @@ -14279,7 +14279,7 @@ "typeString": "literal_string \"ERC721: balance query for the zero address\"" } ], - "id": 1978, + "id": 2009, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -14293,7 +14293,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1986, + "id": 2017, "isConstant": false, "isLValue": false, "isPure": false, @@ -14308,7 +14308,7 @@ "typeString": "tuple()" } }, - "id": 1987, + "id": 2018, "nodeType": "ExpressionStatement", "src": "4072:74:11" }, @@ -14322,25 +14322,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1988, + "id": 2019, "name": "_holderTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1909, + "referencedDeclaration": 1940, "src": "4164:13:11", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4025_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4056_storage_$", "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" } }, - "id": 1990, + "id": 2021, "indexExpression": { "argumentTypes": null, - "id": 1989, + "id": 2020, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1972, + "referencedDeclaration": 2003, "src": "4178:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14354,25 +14354,25 @@ "nodeType": "IndexAccess", "src": "4164:20:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage", + "typeIdentifier": "t_struct$_UintSet_$4056_storage", "typeString": "struct EnumerableSet.UintSet storage ref" } }, - "id": 1991, + "id": 2022, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": 4099, + "referencedDeclaration": 4130, "src": "4164:27:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$4025_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$4025_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$4056_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$4056_storage_ptr_$", "typeString": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" } }, - "id": 1992, + "id": 2023, "isConstant": false, "isLValue": false, "isPure": false, @@ -14387,44 +14387,44 @@ "typeString": "uint256" } }, - "functionReturnParameters": 1977, - "id": 1993, + "functionReturnParameters": 2008, + "id": 2024, "nodeType": "Return", "src": "4157:36:11" } ] }, "documentation": { - "id": 1970, + "id": 2001, "nodeType": "StructuredDocumentation", "src": "3936:48:11", "text": " @dev See {IERC721-balanceOf}." }, "functionSelector": "70a08231", - "id": 1995, + "id": 2026, "implemented": true, "kind": "function", "modifiers": [], "name": "balanceOf", "nodeType": "FunctionDefinition", "overrides": { - "id": 1974, + "id": 2005, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4035:8:11" }, "parameters": { - "id": 1973, + "id": 2004, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1972, + "id": 2003, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1995, + "scope": 2026, "src": "4008:13:11", "stateVariable": false, "storageLocation": "default", @@ -14433,7 +14433,7 @@ "typeString": "address" }, "typeName": { - "id": 1971, + "id": 2002, "name": "address", "nodeType": "ElementaryTypeName", "src": "4008:7:11", @@ -14450,17 +14450,17 @@ "src": "4007:15:11" }, "returnParameters": { - "id": 1977, + "id": 2008, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1976, + "id": 2007, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1995, + "scope": 2026, "src": "4053:7:11", "stateVariable": false, "storageLocation": "default", @@ -14469,7 +14469,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1975, + "id": 2006, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4053:7:11", @@ -14484,7 +14484,7 @@ ], "src": "4052:9:11" }, - "scope": 2794, + "scope": 2825, "src": "3989:211:11", "stateMutability": "view", "virtual": false, @@ -14492,10 +14492,10 @@ }, { "baseFunctions": [ - 2873 + 2904 ], "body": { - "id": 2010, + "id": 2041, "nodeType": "Block", "src": "4330:94:11", "statements": [ @@ -14505,11 +14505,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2006, + "id": 2037, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1998, + "referencedDeclaration": 2029, "src": "4364:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -14519,7 +14519,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 2007, + "id": 2038, "isConstant": false, "isLValue": false, "isPure": true, @@ -14548,32 +14548,32 @@ ], "expression": { "argumentTypes": null, - "id": 2004, + "id": 2035, "name": "_tokenOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1911, + "referencedDeclaration": 1942, "src": "4347:12:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage", "typeString": "struct EnumerableMap.UintToAddressMap storage ref" } }, - "id": 2005, + "id": 2036, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "get", "nodeType": "MemberAccess", - "referencedDeclaration": 3724, + "referencedDeclaration": 3755, "src": "4347:16:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$3550_storage_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_address_$bound_to$_t_struct$_UintToAddressMap_$3550_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$3581_storage_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_address_$bound_to$_t_struct$_UintToAddressMap_$3581_storage_ptr_$", "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" } }, - "id": 2008, + "id": 2039, "isConstant": false, "isLValue": false, "isPure": false, @@ -14588,44 +14588,44 @@ "typeString": "address" } }, - "functionReturnParameters": 2003, - "id": 2009, + "functionReturnParameters": 2034, + "id": 2040, "nodeType": "Return", "src": "4340:77:11" } ] }, "documentation": { - "id": 1996, + "id": 2027, "nodeType": "StructuredDocumentation", "src": "4206:46:11", "text": " @dev See {IERC721-ownerOf}." }, "functionSelector": "6352211e", - "id": 2011, + "id": 2042, "implemented": true, "kind": "function", "modifiers": [], "name": "ownerOf", "nodeType": "FunctionDefinition", "overrides": { - "id": 2000, + "id": 2031, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4303:8:11" }, "parameters": { - "id": 1999, + "id": 2030, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1998, + "id": 2029, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2011, + "scope": 2042, "src": "4274:15:11", "stateVariable": false, "storageLocation": "default", @@ -14634,7 +14634,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1997, + "id": 2028, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4274:7:11", @@ -14650,17 +14650,17 @@ "src": "4273:17:11" }, "returnParameters": { - "id": 2003, + "id": 2034, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2002, + "id": 2033, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2011, + "scope": 2042, "src": "4321:7:11", "stateVariable": false, "storageLocation": "default", @@ -14669,7 +14669,7 @@ "typeString": "address" }, "typeName": { - "id": 2001, + "id": 2032, "name": "address", "nodeType": "ElementaryTypeName", "src": "4321:7:11", @@ -14685,7 +14685,7 @@ ], "src": "4320:9:11" }, - "scope": 2794, + "scope": 2825, "src": "4257:167:11", "stateMutability": "view", "virtual": false, @@ -14693,71 +14693,71 @@ }, { "baseFunctions": [ - 2983 + 3014 ], "body": { - "id": 2020, + "id": 2051, "nodeType": "Block", "src": "4547:29:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 2018, + "id": 2049, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1923, + "referencedDeclaration": 1954, "src": "4564:5:11", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 2017, - "id": 2019, + "functionReturnParameters": 2048, + "id": 2050, "nodeType": "Return", "src": "4557:12:11" } ] }, "documentation": { - "id": 2012, + "id": 2043, "nodeType": "StructuredDocumentation", "src": "4430:51:11", "text": " @dev See {IERC721Metadata-name}." }, "functionSelector": "06fdde03", - "id": 2021, + "id": 2052, "implemented": true, "kind": "function", "modifiers": [], "name": "name", "nodeType": "FunctionDefinition", "overrides": { - "id": 2014, + "id": 2045, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4514:8:11" }, "parameters": { - "id": 2013, + "id": 2044, "nodeType": "ParameterList", "parameters": [], "src": "4499:2:11" }, "returnParameters": { - "id": 2017, + "id": 2048, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2016, + "id": 2047, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2021, + "scope": 2052, "src": "4532:13:11", "stateVariable": false, "storageLocation": "memory", @@ -14766,7 +14766,7 @@ "typeString": "string" }, "typeName": { - "id": 2015, + "id": 2046, "name": "string", "nodeType": "ElementaryTypeName", "src": "4532:6:11", @@ -14781,7 +14781,7 @@ ], "src": "4531:15:11" }, - "scope": 2794, + "scope": 2825, "src": "4486:90:11", "stateMutability": "view", "virtual": false, @@ -14789,71 +14789,71 @@ }, { "baseFunctions": [ - 2989 + 3020 ], "body": { - "id": 2030, + "id": 2061, "nodeType": "Block", "src": "4703:31:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 2028, + "id": 2059, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1925, + "referencedDeclaration": 1956, "src": "4720:7:11", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 2027, - "id": 2029, + "functionReturnParameters": 2058, + "id": 2060, "nodeType": "Return", "src": "4713:14:11" } ] }, "documentation": { - "id": 2022, + "id": 2053, "nodeType": "StructuredDocumentation", "src": "4582:53:11", "text": " @dev See {IERC721Metadata-symbol}." }, "functionSelector": "95d89b41", - "id": 2031, + "id": 2062, "implemented": true, "kind": "function", "modifiers": [], "name": "symbol", "nodeType": "FunctionDefinition", "overrides": { - "id": 2024, + "id": 2055, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4670:8:11" }, "parameters": { - "id": 2023, + "id": 2054, "nodeType": "ParameterList", "parameters": [], "src": "4655:2:11" }, "returnParameters": { - "id": 2027, + "id": 2058, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2026, + "id": 2057, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2031, + "scope": 2062, "src": "4688:13:11", "stateVariable": false, "storageLocation": "memory", @@ -14862,7 +14862,7 @@ "typeString": "string" }, "typeName": { - "id": 2025, + "id": 2056, "name": "string", "nodeType": "ElementaryTypeName", "src": "4688:6:11", @@ -14877,7 +14877,7 @@ ], "src": "4687:15:11" }, - "scope": 2794, + "scope": 2825, "src": "4640:94:11", "stateMutability": "view", "virtual": false, @@ -14885,10 +14885,10 @@ }, { "baseFunctions": [ - 2997 + 3028 ], "body": { - "id": 2093, + "id": 2124, "nodeType": "Block", "src": "4880:660:11", "statements": [ @@ -14901,11 +14901,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2042, + "id": 2073, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, + "referencedDeclaration": 2065, "src": "4906:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -14920,18 +14920,18 @@ "typeString": "uint256" } ], - "id": 2041, + "id": 2072, "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2387, + "referencedDeclaration": 2418, "src": "4898:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 2043, + "id": 2074, "isConstant": false, "isLValue": false, "isPure": false, @@ -14949,7 +14949,7 @@ { "argumentTypes": null, "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 2044, + "id": 2075, "isConstant": false, "isLValue": false, "isPure": true, @@ -14976,7 +14976,7 @@ "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" } ], - "id": 2040, + "id": 2071, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -14990,7 +14990,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2045, + "id": 2076, "isConstant": false, "isLValue": false, "isPure": false, @@ -15005,23 +15005,23 @@ "typeString": "tuple()" } }, - "id": 2046, + "id": 2077, "nodeType": "ExpressionStatement", "src": "4890:76:11" }, { "assignments": [ - 2048 + 2079 ], "declarations": [ { "constant": false, - "id": 2048, + "id": 2079, "mutability": "mutable", "name": "_tokenURI", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2093, + "scope": 2124, "src": "4977:23:11", "stateVariable": false, "storageLocation": "memory", @@ -15030,7 +15030,7 @@ "typeString": "string" }, "typeName": { - "id": 2047, + "id": 2078, "name": "string", "nodeType": "ElementaryTypeName", "src": "4977:6:11", @@ -15043,30 +15043,30 @@ "visibility": "internal" } ], - "id": 2052, + "id": 2083, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2049, + "id": 2080, "name": "_tokenURIs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1929, + "referencedDeclaration": 1960, "src": "5003:10:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", "typeString": "mapping(uint256 => string storage ref)" } }, - "id": 2051, + "id": 2082, "indexExpression": { "argumentTypes": null, - "id": 2050, + "id": 2081, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, + "referencedDeclaration": 2065, "src": "5014:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -15094,7 +15094,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2059, + "id": 2090, "isConstant": false, "isLValue": false, "isPure": false, @@ -15106,11 +15106,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2055, + "id": 2086, "name": "_baseURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1931, + "referencedDeclaration": 1962, "src": "5101:8:11", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -15125,7 +15125,7 @@ "typeString": "string storage ref" } ], - "id": 2054, + "id": 2085, "isConstant": false, "isLValue": false, "isPure": true, @@ -15137,7 +15137,7 @@ "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 2053, + "id": 2084, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5095:5:11", @@ -15147,7 +15147,7 @@ } } }, - "id": 2056, + "id": 2087, "isConstant": false, "isLValue": false, "isPure": false, @@ -15162,7 +15162,7 @@ "typeString": "bytes storage pointer" } }, - "id": 2057, + "id": 2088, "isConstant": false, "isLValue": false, "isPure": false, @@ -15181,7 +15181,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2058, + "id": 2089, "isConstant": false, "isLValue": false, "isPure": true, @@ -15203,30 +15203,30 @@ } }, "falseBody": null, - "id": 2063, + "id": 2094, "nodeType": "IfStatement", "src": "5091:74:11", "trueBody": { - "id": 2062, + "id": 2093, "nodeType": "Block", "src": "5124:41:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 2060, + "id": 2091, "name": "_tokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2048, + "referencedDeclaration": 2079, "src": "5145:9:11", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "functionReturnParameters": 2039, - "id": 2061, + "functionReturnParameters": 2070, + "id": 2092, "nodeType": "Return", "src": "5138:16:11" } @@ -15240,7 +15240,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2070, + "id": 2101, "isConstant": false, "isLValue": false, "isPure": false, @@ -15252,11 +15252,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2066, + "id": 2097, "name": "_tokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2048, + "referencedDeclaration": 2079, "src": "5273:9:11", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -15271,7 +15271,7 @@ "typeString": "string memory" } ], - "id": 2065, + "id": 2096, "isConstant": false, "isLValue": false, "isPure": true, @@ -15283,7 +15283,7 @@ "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 2064, + "id": 2095, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5267:5:11", @@ -15293,7 +15293,7 @@ } } }, - "id": 2067, + "id": 2098, "isConstant": false, "isLValue": false, "isPure": false, @@ -15308,7 +15308,7 @@ "typeString": "bytes memory" } }, - "id": 2068, + "id": 2099, "isConstant": false, "isLValue": false, "isPure": false, @@ -15327,7 +15327,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2069, + "id": 2100, "isConstant": false, "isLValue": false, "isPure": true, @@ -15349,11 +15349,11 @@ } }, "falseBody": null, - "id": 2081, + "id": 2112, "nodeType": "IfStatement", "src": "5263:110:11", "trueBody": { - "id": 2080, + "id": 2111, "nodeType": "Block", "src": "5296:77:11", "statements": [ @@ -15366,11 +15366,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2075, + "id": 2106, "name": "_baseURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1931, + "referencedDeclaration": 1962, "src": "5341:8:11", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -15379,11 +15379,11 @@ }, { "argumentTypes": null, - "id": 2076, + "id": 2107, "name": "_tokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2048, + "referencedDeclaration": 2079, "src": "5351:9:11", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -15404,7 +15404,7 @@ ], "expression": { "argumentTypes": null, - "id": 2073, + "id": 2104, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -15415,7 +15415,7 @@ "typeString": "abi" } }, - "id": 2074, + "id": 2105, "isConstant": false, "isLValue": false, "isPure": true, @@ -15429,7 +15429,7 @@ "typeString": "function () pure returns (bytes memory)" } }, - "id": 2077, + "id": 2108, "isConstant": false, "isLValue": false, "isPure": false, @@ -15452,7 +15452,7 @@ "typeString": "bytes memory" } ], - "id": 2072, + "id": 2103, "isConstant": false, "isLValue": false, "isPure": true, @@ -15464,7 +15464,7 @@ "typeString": "type(string storage pointer)" }, "typeName": { - "id": 2071, + "id": 2102, "name": "string", "nodeType": "ElementaryTypeName", "src": "5317:6:11", @@ -15474,7 +15474,7 @@ } } }, - "id": 2078, + "id": 2109, "isConstant": false, "isLValue": false, "isPure": false, @@ -15489,8 +15489,8 @@ "typeString": "string memory" } }, - "functionReturnParameters": 2039, - "id": 2079, + "functionReturnParameters": 2070, + "id": 2110, "nodeType": "Return", "src": "5310:52:11" } @@ -15506,11 +15506,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2086, + "id": 2117, "name": "_baseURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1931, + "referencedDeclaration": 1962, "src": "5503:8:11", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -15524,32 +15524,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 2087, + "id": 2118, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, + "referencedDeclaration": 2065, "src": "5513:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2088, + "id": 2119, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "toString", "nodeType": "MemberAccess", - "referencedDeclaration": 4296, + "referencedDeclaration": 4327, "src": "5513:16:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (string memory)" } }, - "id": 2089, + "id": 2120, "isConstant": false, "isLValue": false, "isPure": false, @@ -15578,7 +15578,7 @@ ], "expression": { "argumentTypes": null, - "id": 2084, + "id": 2115, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -15589,7 +15589,7 @@ "typeString": "abi" } }, - "id": 2085, + "id": 2116, "isConstant": false, "isLValue": false, "isPure": true, @@ -15603,7 +15603,7 @@ "typeString": "function () pure returns (bytes memory)" } }, - "id": 2090, + "id": 2121, "isConstant": false, "isLValue": false, "isPure": false, @@ -15626,7 +15626,7 @@ "typeString": "bytes memory" } ], - "id": 2083, + "id": 2114, "isConstant": false, "isLValue": false, "isPure": true, @@ -15638,7 +15638,7 @@ "typeString": "type(string storage pointer)" }, "typeName": { - "id": 2082, + "id": 2113, "name": "string", "nodeType": "ElementaryTypeName", "src": "5479:6:11", @@ -15648,7 +15648,7 @@ } } }, - "id": 2091, + "id": 2122, "isConstant": false, "isLValue": false, "isPure": false, @@ -15663,44 +15663,44 @@ "typeString": "string memory" } }, - "functionReturnParameters": 2039, - "id": 2092, + "functionReturnParameters": 2070, + "id": 2123, "nodeType": "Return", "src": "5472:61:11" } ] }, "documentation": { - "id": 2032, + "id": 2063, "nodeType": "StructuredDocumentation", "src": "4740:55:11", "text": " @dev See {IERC721Metadata-tokenURI}." }, "functionSelector": "c87b56dd", - "id": 2094, + "id": 2125, "implemented": true, "kind": "function", "modifiers": [], "name": "tokenURI", "nodeType": "FunctionDefinition", "overrides": { - "id": 2036, + "id": 2067, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4847:8:11" }, "parameters": { - "id": 2035, + "id": 2066, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2034, + "id": 2065, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2094, + "scope": 2125, "src": "4818:15:11", "stateVariable": false, "storageLocation": "default", @@ -15709,7 +15709,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2033, + "id": 2064, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4818:7:11", @@ -15725,17 +15725,17 @@ "src": "4817:17:11" }, "returnParameters": { - "id": 2039, + "id": 2070, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2038, + "id": 2069, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2094, + "scope": 2125, "src": "4865:13:11", "stateVariable": false, "storageLocation": "memory", @@ -15744,7 +15744,7 @@ "typeString": "string" }, "typeName": { - "id": 2037, + "id": 2068, "name": "string", "nodeType": "ElementaryTypeName", "src": "4865:6:11", @@ -15759,7 +15759,7 @@ ], "src": "4864:15:11" }, - "scope": 2794, + "scope": 2825, "src": "4800:740:11", "stateMutability": "view", "virtual": false, @@ -15767,39 +15767,39 @@ }, { "body": { - "id": 2102, + "id": 2133, "nodeType": "Block", "src": "5827:32:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 2100, + "id": 2131, "name": "_baseURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1931, + "referencedDeclaration": 1962, "src": "5844:8:11", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 2099, - "id": 2101, + "functionReturnParameters": 2130, + "id": 2132, "nodeType": "Return", "src": "5837:15:11" } ] }, "documentation": { - "id": 2095, + "id": 2126, "nodeType": "StructuredDocumentation", "src": "5546:221:11", "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." }, "functionSelector": "6c0360eb", - "id": 2103, + "id": 2134, "implemented": true, "kind": "function", "modifiers": [], @@ -15807,23 +15807,23 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2096, + "id": 2127, "nodeType": "ParameterList", "parameters": [], "src": "5788:2:11" }, "returnParameters": { - "id": 2099, + "id": 2130, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2098, + "id": 2129, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2103, + "scope": 2134, "src": "5812:13:11", "stateVariable": false, "storageLocation": "memory", @@ -15832,7 +15832,7 @@ "typeString": "string" }, "typeName": { - "id": 2097, + "id": 2128, "name": "string", "nodeType": "ElementaryTypeName", "src": "5812:6:11", @@ -15847,7 +15847,7 @@ ], "src": "5811:15:11" }, - "scope": 2794, + "scope": 2825, "src": "5772:87:11", "stateMutability": "view", "virtual": false, @@ -15855,10 +15855,10 @@ }, { "baseFunctions": [ - 2962 + 2993 ], "body": { - "id": 2121, + "id": 2152, "nodeType": "Block", "src": "6036:54:11", "statements": [ @@ -15868,11 +15868,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2118, + "id": 2149, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2108, + "referencedDeclaration": 2139, "src": "6077:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -15891,25 +15891,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2114, + "id": 2145, "name": "_holderTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1909, + "referencedDeclaration": 1940, "src": "6053:13:11", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4025_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4056_storage_$", "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" } }, - "id": 2116, + "id": 2147, "indexExpression": { "argumentTypes": null, - "id": 2115, + "id": 2146, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2106, + "referencedDeclaration": 2137, "src": "6067:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15923,25 +15923,25 @@ "nodeType": "IndexAccess", "src": "6053:20:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage", + "typeIdentifier": "t_struct$_UintSet_$4056_storage", "typeString": "struct EnumerableSet.UintSet storage ref" } }, - "id": 2117, + "id": 2148, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "at", "nodeType": "MemberAccess", - "referencedDeclaration": 4119, + "referencedDeclaration": 4150, "src": "6053:23:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$4025_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$4025_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$4056_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$4056_storage_ptr_$", "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" } }, - "id": 2119, + "id": 2150, "isConstant": false, "isLValue": false, "isPure": false, @@ -15956,44 +15956,44 @@ "typeString": "uint256" } }, - "functionReturnParameters": 2113, - "id": 2120, + "functionReturnParameters": 2144, + "id": 2151, "nodeType": "Return", "src": "6046:37:11" } ] }, "documentation": { - "id": 2104, + "id": 2135, "nodeType": "StructuredDocumentation", "src": "5865:68:11", "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." }, "functionSelector": "2f745c59", - "id": 2122, + "id": 2153, "implemented": true, "kind": "function", "modifiers": [], "name": "tokenOfOwnerByIndex", "nodeType": "FunctionDefinition", "overrides": { - "id": 2110, + "id": 2141, "nodeType": "OverrideSpecifier", "overrides": [], "src": "6009:8:11" }, "parameters": { - "id": 2109, + "id": 2140, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2106, + "id": 2137, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2122, + "scope": 2153, "src": "5967:13:11", "stateVariable": false, "storageLocation": "default", @@ -16002,7 +16002,7 @@ "typeString": "address" }, "typeName": { - "id": 2105, + "id": 2136, "name": "address", "nodeType": "ElementaryTypeName", "src": "5967:7:11", @@ -16017,12 +16017,12 @@ }, { "constant": false, - "id": 2108, + "id": 2139, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2122, + "scope": 2153, "src": "5982:13:11", "stateVariable": false, "storageLocation": "default", @@ -16031,7 +16031,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2107, + "id": 2138, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5982:7:11", @@ -16047,17 +16047,17 @@ "src": "5966:30:11" }, "returnParameters": { - "id": 2113, + "id": 2144, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2112, + "id": 2143, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2122, + "scope": 2153, "src": "6027:7:11", "stateVariable": false, "storageLocation": "default", @@ -16066,7 +16066,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2111, + "id": 2142, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6027:7:11", @@ -16081,7 +16081,7 @@ ], "src": "6026:9:11" }, - "scope": 2794, + "scope": 2825, "src": "5938:152:11", "stateMutability": "view", "virtual": false, @@ -16089,10 +16089,10 @@ }, { "baseFunctions": [ - 2952 + 2983 ], "body": { - "id": 2133, + "id": 2164, "nodeType": "Block", "src": "6223:138:11", "statements": [ @@ -16104,32 +16104,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 2129, + "id": 2160, "name": "_tokenOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1911, + "referencedDeclaration": 1942, "src": "6333:12:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage", "typeString": "struct EnumerableMap.UintToAddressMap storage ref" } }, - "id": 2130, + "id": 2161, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": 3633, + "referencedDeclaration": 3664, "src": "6333:19:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$3550_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintToAddressMap_$3550_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$3581_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintToAddressMap_$3581_storage_ptr_$", "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" } }, - "id": 2131, + "id": 2162, "isConstant": false, "isLValue": false, "isPure": false, @@ -16144,50 +16144,50 @@ "typeString": "uint256" } }, - "functionReturnParameters": 2128, - "id": 2132, + "functionReturnParameters": 2159, + "id": 2163, "nodeType": "Return", "src": "6326:28:11" } ] }, "documentation": { - "id": 2123, + "id": 2154, "nodeType": "StructuredDocumentation", "src": "6096:60:11", "text": " @dev See {IERC721Enumerable-totalSupply}." }, "functionSelector": "18160ddd", - "id": 2134, + "id": 2165, "implemented": true, "kind": "function", "modifiers": [], "name": "totalSupply", "nodeType": "FunctionDefinition", "overrides": { - "id": 2125, + "id": 2156, "nodeType": "OverrideSpecifier", "overrides": [], "src": "6196:8:11" }, "parameters": { - "id": 2124, + "id": 2155, "nodeType": "ParameterList", "parameters": [], "src": "6181:2:11" }, "returnParameters": { - "id": 2128, + "id": 2159, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2127, + "id": 2158, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2134, + "scope": 2165, "src": "6214:7:11", "stateVariable": false, "storageLocation": "default", @@ -16196,7 +16196,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2126, + "id": 2157, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6214:7:11", @@ -16211,7 +16211,7 @@ ], "src": "6213:9:11" }, - "scope": 2794, + "scope": 2825, "src": "6161:200:11", "stateMutability": "view", "virtual": false, @@ -16219,27 +16219,27 @@ }, { "baseFunctions": [ - 2970 + 3001 ], "body": { - "id": 2152, + "id": 2183, "nodeType": "Block", "src": "6509:85:11", "statements": [ { "assignments": [ - 2144, + 2175, null ], "declarations": [ { "constant": false, - "id": 2144, + "id": 2175, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2152, + "scope": 2183, "src": "6520:15:11", "stateVariable": false, "storageLocation": "default", @@ -16248,7 +16248,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2143, + "id": 2174, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6520:7:11", @@ -16262,17 +16262,17 @@ }, null ], - "id": 2149, + "id": 2180, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2147, + "id": 2178, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, + "referencedDeclaration": 2168, "src": "6557:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -16289,32 +16289,32 @@ ], "expression": { "argumentTypes": null, - "id": 2145, + "id": 2176, "name": "_tokenOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1911, + "referencedDeclaration": 1942, "src": "6541:12:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage", "typeString": "struct EnumerableMap.UintToAddressMap storage ref" } }, - "id": 2146, + "id": 2177, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "at", "nodeType": "MemberAccess", - "referencedDeclaration": 3669, + "referencedDeclaration": 3700, "src": "6541:15:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$3550_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_address_$bound_to$_t_struct$_UintToAddressMap_$3550_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$3581_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_address_$bound_to$_t_struct$_UintToAddressMap_$3581_storage_ptr_$", "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" } }, - "id": 2148, + "id": 2179, "isConstant": false, "isLValue": false, "isPure": false, @@ -16335,55 +16335,55 @@ { "expression": { "argumentTypes": null, - "id": 2150, + "id": 2181, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2144, + "referencedDeclaration": 2175, "src": "6580:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2142, - "id": 2151, + "functionReturnParameters": 2173, + "id": 2182, "nodeType": "Return", "src": "6573:14:11" } ] }, "documentation": { - "id": 2135, + "id": 2166, "nodeType": "StructuredDocumentation", "src": "6367:61:11", "text": " @dev See {IERC721Enumerable-tokenByIndex}." }, "functionSelector": "4f6ccce7", - "id": 2153, + "id": 2184, "implemented": true, "kind": "function", "modifiers": [], "name": "tokenByIndex", "nodeType": "FunctionDefinition", "overrides": { - "id": 2139, + "id": 2170, "nodeType": "OverrideSpecifier", "overrides": [], "src": "6482:8:11" }, "parameters": { - "id": 2138, + "id": 2169, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2137, + "id": 2168, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2153, + "scope": 2184, "src": "6455:13:11", "stateVariable": false, "storageLocation": "default", @@ -16392,7 +16392,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2136, + "id": 2167, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6455:7:11", @@ -16408,17 +16408,17 @@ "src": "6454:15:11" }, "returnParameters": { - "id": 2142, + "id": 2173, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2141, + "id": 2172, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2153, + "scope": 2184, "src": "6500:7:11", "stateVariable": false, "storageLocation": "default", @@ -16427,7 +16427,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2140, + "id": 2171, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6500:7:11", @@ -16442,7 +16442,7 @@ ], "src": "6499:9:11" }, - "scope": 2794, + "scope": 2825, "src": "6433:161:11", "stateMutability": "view", "virtual": false, @@ -16450,26 +16450,26 @@ }, { "baseFunctions": [ - 2901 + 2932 ], "body": { - "id": 2194, + "id": 2225, "nodeType": "Block", "src": "6721:311:11", "statements": [ { "assignments": [ - 2163 + 2194 ], "declarations": [ { "constant": false, - "id": 2163, + "id": 2194, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2194, + "scope": 2225, "src": "6731:13:11", "stateVariable": false, "storageLocation": "default", @@ -16478,7 +16478,7 @@ "typeString": "address" }, "typeName": { - "id": 2162, + "id": 2193, "name": "address", "nodeType": "ElementaryTypeName", "src": "6731:7:11", @@ -16492,17 +16492,17 @@ "visibility": "internal" } ], - "id": 2167, + "id": 2198, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2165, + "id": 2196, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2158, + "referencedDeclaration": 2189, "src": "6755:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -16517,18 +16517,18 @@ "typeString": "uint256" } ], - "id": 2164, + "id": 2195, "name": "ownerOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2011, + "referencedDeclaration": 2042, "src": "6747:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, - "id": 2166, + "id": 2197, "isConstant": false, "isLValue": false, "isPure": false, @@ -16556,18 +16556,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2171, + "id": 2202, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2169, + "id": 2200, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2156, + "referencedDeclaration": 2187, "src": "6781:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16578,11 +16578,11 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2170, + "id": 2201, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2163, + "referencedDeclaration": 2194, "src": "6787:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16598,7 +16598,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 2172, + "id": 2203, "isConstant": false, "isLValue": false, "isPure": true, @@ -16625,7 +16625,7 @@ "typeString": "literal_string \"ERC721: approval to current owner\"" } ], - "id": 2168, + "id": 2199, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -16639,7 +16639,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2173, + "id": 2204, "isConstant": false, "isLValue": false, "isPure": false, @@ -16654,7 +16654,7 @@ "typeString": "tuple()" } }, - "id": 2174, + "id": 2205, "nodeType": "ExpressionStatement", "src": "6773:57:11" }, @@ -16668,7 +16668,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2185, + "id": 2216, "isConstant": false, "isLValue": false, "isPure": false, @@ -16679,7 +16679,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2179, + "id": 2210, "isConstant": false, "isLValue": false, "isPure": false, @@ -16689,18 +16689,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2176, + "id": 2207, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "6849:10:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 2177, + "id": 2208, "isConstant": false, "isLValue": false, "isPure": false, @@ -16719,11 +16719,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2178, + "id": 2209, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2163, + "referencedDeclaration": 2194, "src": "6865:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16743,11 +16743,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2181, + "id": 2212, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2163, + "referencedDeclaration": 2194, "src": "6891:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16759,18 +16759,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2182, + "id": 2213, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "6898:10:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 2183, + "id": 2214, "isConstant": false, "isLValue": false, "isPure": false, @@ -16797,18 +16797,18 @@ "typeString": "address payable" } ], - "id": 2180, + "id": 2211, "name": "isApprovedForAll", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, + "referencedDeclaration": 2299, "src": "6874:16:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) view returns (bool)" } }, - "id": 2184, + "id": 2215, "isConstant": false, "isLValue": false, "isPure": false, @@ -16832,7 +16832,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 2186, + "id": 2217, "isConstant": false, "isLValue": false, "isPure": true, @@ -16859,7 +16859,7 @@ "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" } ], - "id": 2175, + "id": 2206, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -16873,7 +16873,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2187, + "id": 2218, "isConstant": false, "isLValue": false, "isPure": false, @@ -16888,7 +16888,7 @@ "typeString": "tuple()" } }, - "id": 2188, + "id": 2219, "nodeType": "ExpressionStatement", "src": "6841:152:11" }, @@ -16898,11 +16898,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2190, + "id": 2221, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2156, + "referencedDeclaration": 2187, "src": "7013:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16911,11 +16911,11 @@ }, { "argumentTypes": null, - "id": 2191, + "id": 2222, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2158, + "referencedDeclaration": 2189, "src": "7017:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -16934,18 +16934,18 @@ "typeString": "uint256" } ], - "id": 2189, + "id": 2220, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2782, + "referencedDeclaration": 2813, "src": "7004:8:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 2192, + "id": 2223, "isConstant": false, "isLValue": false, "isPure": false, @@ -16960,43 +16960,43 @@ "typeString": "tuple()" } }, - "id": 2193, + "id": 2224, "nodeType": "ExpressionStatement", "src": "7004:21:11" } ] }, "documentation": { - "id": 2154, + "id": 2185, "nodeType": "StructuredDocumentation", "src": "6600:46:11", "text": " @dev See {IERC721-approve}." }, "functionSelector": "095ea7b3", - "id": 2195, + "id": 2226, "implemented": true, "kind": "function", "modifiers": [], "name": "approve", "nodeType": "FunctionDefinition", "overrides": { - "id": 2160, + "id": 2191, "nodeType": "OverrideSpecifier", "overrides": [], "src": "6712:8:11" }, "parameters": { - "id": 2159, + "id": 2190, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2156, + "id": 2187, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2195, + "scope": 2226, "src": "6668:10:11", "stateVariable": false, "storageLocation": "default", @@ -17005,7 +17005,7 @@ "typeString": "address" }, "typeName": { - "id": 2155, + "id": 2186, "name": "address", "nodeType": "ElementaryTypeName", "src": "6668:7:11", @@ -17020,12 +17020,12 @@ }, { "constant": false, - "id": 2158, + "id": 2189, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2195, + "scope": 2226, "src": "6680:15:11", "stateVariable": false, "storageLocation": "default", @@ -17034,7 +17034,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2157, + "id": 2188, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6680:7:11", @@ -17050,12 +17050,12 @@ "src": "6667:29:11" }, "returnParameters": { - "id": 2161, + "id": 2192, "nodeType": "ParameterList", "parameters": [], "src": "6721:0:11" }, - "scope": 2794, + "scope": 2825, "src": "6651:381:11", "stateMutability": "nonpayable", "virtual": true, @@ -17063,10 +17063,10 @@ }, { "baseFunctions": [ - 2909 + 2940 ], "body": { - "id": 2215, + "id": 2246, "nodeType": "Block", "src": "7170:132:11", "statements": [ @@ -17079,11 +17079,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2206, + "id": 2237, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2198, + "referencedDeclaration": 2229, "src": "7196:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -17098,18 +17098,18 @@ "typeString": "uint256" } ], - "id": 2205, + "id": 2236, "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2387, + "referencedDeclaration": 2418, "src": "7188:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 2207, + "id": 2238, "isConstant": false, "isLValue": false, "isPure": false, @@ -17127,7 +17127,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 2208, + "id": 2239, "isConstant": false, "isLValue": false, "isPure": true, @@ -17154,7 +17154,7 @@ "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" } ], - "id": 2204, + "id": 2235, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -17168,7 +17168,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2209, + "id": 2240, "isConstant": false, "isLValue": false, "isPure": false, @@ -17183,7 +17183,7 @@ "typeString": "tuple()" } }, - "id": 2210, + "id": 2241, "nodeType": "ExpressionStatement", "src": "7180:73:11" }, @@ -17192,25 +17192,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2211, + "id": 2242, "name": "_tokenApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1915, + "referencedDeclaration": 1946, "src": "7271:15:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, - "id": 2213, + "id": 2244, "indexExpression": { "argumentTypes": null, - "id": 2212, + "id": 2243, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2198, + "referencedDeclaration": 2229, "src": "7287:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -17228,44 +17228,44 @@ "typeString": "address" } }, - "functionReturnParameters": 2203, - "id": 2214, + "functionReturnParameters": 2234, + "id": 2245, "nodeType": "Return", "src": "7264:31:11" } ] }, "documentation": { - "id": 2196, + "id": 2227, "nodeType": "StructuredDocumentation", "src": "7038:50:11", "text": " @dev See {IERC721-getApproved}." }, "functionSelector": "081812fc", - "id": 2216, + "id": 2247, "implemented": true, "kind": "function", "modifiers": [], "name": "getApproved", "nodeType": "FunctionDefinition", "overrides": { - "id": 2200, + "id": 2231, "nodeType": "OverrideSpecifier", "overrides": [], "src": "7143:8:11" }, "parameters": { - "id": 2199, + "id": 2230, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2198, + "id": 2229, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2216, + "scope": 2247, "src": "7114:15:11", "stateVariable": false, "storageLocation": "default", @@ -17274,7 +17274,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2197, + "id": 2228, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7114:7:11", @@ -17290,17 +17290,17 @@ "src": "7113:17:11" }, "returnParameters": { - "id": 2203, + "id": 2234, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2202, + "id": 2233, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2216, + "scope": 2247, "src": "7161:7:11", "stateVariable": false, "storageLocation": "default", @@ -17309,7 +17309,7 @@ "typeString": "address" }, "typeName": { - "id": 2201, + "id": 2232, "name": "address", "nodeType": "ElementaryTypeName", "src": "7161:7:11", @@ -17325,7 +17325,7 @@ ], "src": "7160:9:11" }, - "scope": 2794, + "scope": 2825, "src": "7093:209:11", "stateMutability": "view", "virtual": false, @@ -17333,10 +17333,10 @@ }, { "baseFunctions": [ - 2917 + 2948 ], "body": { - "id": 2249, + "id": 2280, "nodeType": "Block", "src": "7453:206:11", "statements": [ @@ -17350,18 +17350,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2229, + "id": 2260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2226, + "id": 2257, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2219, + "referencedDeclaration": 2250, "src": "7471:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -17375,18 +17375,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2227, + "id": 2258, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "7483:10:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 2228, + "id": 2259, "isConstant": false, "isLValue": false, "isPure": false, @@ -17410,7 +17410,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 2230, + "id": 2261, "isConstant": false, "isLValue": false, "isPure": true, @@ -17437,7 +17437,7 @@ "typeString": "literal_string \"ERC721: approve to caller\"" } ], - "id": 2225, + "id": 2256, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -17451,7 +17451,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2231, + "id": 2262, "isConstant": false, "isLValue": false, "isPure": false, @@ -17466,14 +17466,14 @@ "typeString": "tuple()" } }, - "id": 2232, + "id": 2263, "nodeType": "ExpressionStatement", "src": "7463:62:11" }, { "expression": { "argumentTypes": null, - "id": 2240, + "id": 2271, "isConstant": false, "isLValue": false, "isPure": false, @@ -17484,35 +17484,35 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2233, + "id": 2264, "name": "_operatorApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1921, + "referencedDeclaration": 1952, "src": "7536:18:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, - "id": 2237, + "id": 2268, "indexExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 2234, + "id": 2265, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "7555:10:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 2235, + "id": 2266, "isConstant": false, "isLValue": false, "isPure": false, @@ -17538,14 +17538,14 @@ "typeString": "mapping(address => bool)" } }, - "id": 2238, + "id": 2269, "indexExpression": { "argumentTypes": null, - "id": 2236, + "id": 2267, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2219, + "referencedDeclaration": 2250, "src": "7569:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -17567,11 +17567,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2239, + "id": 2270, "name": "approved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2221, + "referencedDeclaration": 2252, "src": "7581:8:11", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -17584,7 +17584,7 @@ "typeString": "bool" } }, - "id": 2241, + "id": 2272, "nodeType": "ExpressionStatement", "src": "7536:53:11" }, @@ -17597,18 +17597,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2243, + "id": 2274, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "7619:10:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 2244, + "id": 2275, "isConstant": false, "isLValue": false, "isPure": false, @@ -17625,11 +17625,11 @@ }, { "argumentTypes": null, - "id": 2245, + "id": 2276, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2219, + "referencedDeclaration": 2250, "src": "7633:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -17638,11 +17638,11 @@ }, { "argumentTypes": null, - "id": 2246, + "id": 2277, "name": "approved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2221, + "referencedDeclaration": 2252, "src": "7643:8:11", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -17665,18 +17665,18 @@ "typeString": "bool" } ], - "id": 2242, + "id": 2273, "name": "ApprovalForAll", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2857, + "referencedDeclaration": 2888, "src": "7604:14:11", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", "typeString": "function (address,address,bool)" } }, - "id": 2247, + "id": 2278, "isConstant": false, "isLValue": false, "isPure": false, @@ -17691,43 +17691,43 @@ "typeString": "tuple()" } }, - "id": 2248, + "id": 2279, "nodeType": "EmitStatement", "src": "7599:53:11" } ] }, "documentation": { - "id": 2217, + "id": 2248, "nodeType": "StructuredDocumentation", "src": "7308:56:11", "text": " @dev See {IERC721-setApprovalForAll}." }, "functionSelector": "a22cb465", - "id": 2250, + "id": 2281, "implemented": true, "kind": "function", "modifiers": [], "name": "setApprovalForAll", "nodeType": "FunctionDefinition", "overrides": { - "id": 2223, + "id": 2254, "nodeType": "OverrideSpecifier", "overrides": [], "src": "7444:8:11" }, "parameters": { - "id": 2222, + "id": 2253, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2219, + "id": 2250, "mutability": "mutable", "name": "operator", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2250, + "scope": 2281, "src": "7396:16:11", "stateVariable": false, "storageLocation": "default", @@ -17736,7 +17736,7 @@ "typeString": "address" }, "typeName": { - "id": 2218, + "id": 2249, "name": "address", "nodeType": "ElementaryTypeName", "src": "7396:7:11", @@ -17751,12 +17751,12 @@ }, { "constant": false, - "id": 2221, + "id": 2252, "mutability": "mutable", "name": "approved", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2250, + "scope": 2281, "src": "7414:13:11", "stateVariable": false, "storageLocation": "default", @@ -17765,7 +17765,7 @@ "typeString": "bool" }, "typeName": { - "id": 2220, + "id": 2251, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7414:4:11", @@ -17781,12 +17781,12 @@ "src": "7395:33:11" }, "returnParameters": { - "id": 2224, + "id": 2255, "nodeType": "ParameterList", "parameters": [], "src": "7453:0:11" }, - "scope": 2794, + "scope": 2825, "src": "7369:290:11", "stateMutability": "nonpayable", "virtual": true, @@ -17794,10 +17794,10 @@ }, { "baseFunctions": [ - 2927 + 2958 ], "body": { - "id": 2267, + "id": 2298, "nodeType": "Block", "src": "7820:59:11", "statements": [ @@ -17808,25 +17808,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2261, + "id": 2292, "name": "_operatorApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1921, + "referencedDeclaration": 1952, "src": "7837:18:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, - "id": 2263, + "id": 2294, "indexExpression": { "argumentTypes": null, - "id": 2262, + "id": 2293, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2253, + "referencedDeclaration": 2284, "src": "7856:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -17844,14 +17844,14 @@ "typeString": "mapping(address => bool)" } }, - "id": 2265, + "id": 2296, "indexExpression": { "argumentTypes": null, - "id": 2264, + "id": 2295, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2255, + "referencedDeclaration": 2286, "src": "7863:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -17869,44 +17869,44 @@ "typeString": "bool" } }, - "functionReturnParameters": 2260, - "id": 2266, + "functionReturnParameters": 2291, + "id": 2297, "nodeType": "Return", "src": "7830:42:11" } ] }, "documentation": { - "id": 2251, + "id": 2282, "nodeType": "StructuredDocumentation", "src": "7665:55:11", "text": " @dev See {IERC721-isApprovedForAll}." }, "functionSelector": "e985e9c5", - "id": 2268, + "id": 2299, "implemented": true, "kind": "function", "modifiers": [], "name": "isApprovedForAll", "nodeType": "FunctionDefinition", "overrides": { - "id": 2257, + "id": 2288, "nodeType": "OverrideSpecifier", "overrides": [], "src": "7796:8:11" }, "parameters": { - "id": 2256, + "id": 2287, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2253, + "id": 2284, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2268, + "scope": 2299, "src": "7751:13:11", "stateVariable": false, "storageLocation": "default", @@ -17915,7 +17915,7 @@ "typeString": "address" }, "typeName": { - "id": 2252, + "id": 2283, "name": "address", "nodeType": "ElementaryTypeName", "src": "7751:7:11", @@ -17930,12 +17930,12 @@ }, { "constant": false, - "id": 2255, + "id": 2286, "mutability": "mutable", "name": "operator", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2268, + "scope": 2299, "src": "7766:16:11", "stateVariable": false, "storageLocation": "default", @@ -17944,7 +17944,7 @@ "typeString": "address" }, "typeName": { - "id": 2254, + "id": 2285, "name": "address", "nodeType": "ElementaryTypeName", "src": "7766:7:11", @@ -17961,17 +17961,17 @@ "src": "7750:33:11" }, "returnParameters": { - "id": 2260, + "id": 2291, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2259, + "id": 2290, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2268, + "scope": 2299, "src": "7814:4:11", "stateVariable": false, "storageLocation": "default", @@ -17980,7 +17980,7 @@ "typeString": "bool" }, "typeName": { - "id": 2258, + "id": 2289, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7814:4:11", @@ -17995,7 +17995,7 @@ ], "src": "7813:6:11" }, - "scope": 2794, + "scope": 2825, "src": "7725:154:11", "stateMutability": "view", "virtual": false, @@ -18003,10 +18003,10 @@ }, { "baseFunctions": [ - 2893 + 2924 ], "body": { - "id": 2294, + "id": 2325, "nodeType": "Block", "src": "8030:211:11", "statements": [ @@ -18022,18 +18022,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2281, + "id": 2312, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "8119:10:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 2282, + "id": 2313, "isConstant": false, "isLValue": false, "isPure": false, @@ -18050,11 +18050,11 @@ }, { "argumentTypes": null, - "id": 2283, + "id": 2314, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2275, + "referencedDeclaration": 2306, "src": "8133:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -18073,18 +18073,18 @@ "typeString": "uint256" } ], - "id": 2280, + "id": 2311, "name": "_isApprovedOrOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2427, + "referencedDeclaration": 2458, "src": "8100:18:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) view returns (bool)" } }, - "id": 2284, + "id": 2315, "isConstant": false, "isLValue": false, "isPure": false, @@ -18102,7 +18102,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 2285, + "id": 2316, "isConstant": false, "isLValue": false, "isPure": true, @@ -18129,7 +18129,7 @@ "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" } ], - "id": 2279, + "id": 2310, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -18143,7 +18143,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2286, + "id": 2317, "isConstant": false, "isLValue": false, "isPure": false, @@ -18158,7 +18158,7 @@ "typeString": "tuple()" } }, - "id": 2287, + "id": 2318, "nodeType": "ExpressionStatement", "src": "8092:103:11" }, @@ -18168,11 +18168,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2289, + "id": 2320, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2271, + "referencedDeclaration": 2302, "src": "8216:4:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -18181,11 +18181,11 @@ }, { "argumentTypes": null, - "id": 2290, + "id": 2321, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2273, + "referencedDeclaration": 2304, "src": "8222:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -18194,11 +18194,11 @@ }, { "argumentTypes": null, - "id": 2291, + "id": 2322, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2275, + "referencedDeclaration": 2306, "src": "8226:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -18221,18 +18221,18 @@ "typeString": "uint256" } ], - "id": 2288, + "id": 2319, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2669, + "referencedDeclaration": 2700, "src": "8206:9:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2292, + "id": 2323, "isConstant": false, "isLValue": false, "isPure": false, @@ -18247,43 +18247,43 @@ "typeString": "tuple()" } }, - "id": 2293, + "id": 2324, "nodeType": "ExpressionStatement", "src": "8206:28:11" } ] }, "documentation": { - "id": 2269, + "id": 2300, "nodeType": "StructuredDocumentation", "src": "7885:51:11", "text": " @dev See {IERC721-transferFrom}." }, "functionSelector": "23b872dd", - "id": 2295, + "id": 2326, "implemented": true, "kind": "function", "modifiers": [], "name": "transferFrom", "nodeType": "FunctionDefinition", "overrides": { - "id": 2277, + "id": 2308, "nodeType": "OverrideSpecifier", "overrides": [], "src": "8021:8:11" }, "parameters": { - "id": 2276, + "id": 2307, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2271, + "id": 2302, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2295, + "scope": 2326, "src": "7963:12:11", "stateVariable": false, "storageLocation": "default", @@ -18292,7 +18292,7 @@ "typeString": "address" }, "typeName": { - "id": 2270, + "id": 2301, "name": "address", "nodeType": "ElementaryTypeName", "src": "7963:7:11", @@ -18307,12 +18307,12 @@ }, { "constant": false, - "id": 2273, + "id": 2304, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2295, + "scope": 2326, "src": "7977:10:11", "stateVariable": false, "storageLocation": "default", @@ -18321,7 +18321,7 @@ "typeString": "address" }, "typeName": { - "id": 2272, + "id": 2303, "name": "address", "nodeType": "ElementaryTypeName", "src": "7977:7:11", @@ -18336,12 +18336,12 @@ }, { "constant": false, - "id": 2275, + "id": 2306, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2295, + "scope": 2326, "src": "7989:15:11", "stateVariable": false, "storageLocation": "default", @@ -18350,7 +18350,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2274, + "id": 2305, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7989:7:11", @@ -18366,12 +18366,12 @@ "src": "7962:43:11" }, "returnParameters": { - "id": 2278, + "id": 2309, "nodeType": "ParameterList", "parameters": [], "src": "8030:0:11" }, - "scope": 2794, + "scope": 2825, "src": "7941:300:11", "stateMutability": "nonpayable", "virtual": true, @@ -18379,10 +18379,10 @@ }, { "baseFunctions": [ - 2883 + 2914 ], "body": { - "id": 2313, + "id": 2344, "nodeType": "Block", "src": "8400:56:11", "statements": [ @@ -18392,11 +18392,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2307, + "id": 2338, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2298, + "referencedDeclaration": 2329, "src": "8427:4:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -18405,11 +18405,11 @@ }, { "argumentTypes": null, - "id": 2308, + "id": 2339, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2300, + "referencedDeclaration": 2331, "src": "8433:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -18418,11 +18418,11 @@ }, { "argumentTypes": null, - "id": 2309, + "id": 2340, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2302, + "referencedDeclaration": 2333, "src": "8437:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -18432,7 +18432,7 @@ { "argumentTypes": null, "hexValue": "", - "id": 2310, + "id": 2341, "isConstant": false, "isLValue": false, "isPure": true, @@ -18467,21 +18467,21 @@ "typeString": "literal_string \"\"" } ], - "id": 2306, + "id": 2337, "name": "safeTransferFrom", "nodeType": "Identifier", "overloadedDeclarations": [ - 2314, - 2344 + 2345, + 2375 ], - "referencedDeclaration": 2344, + "referencedDeclaration": 2375, "src": "8410:16:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256,bytes memory)" } }, - "id": 2311, + "id": 2342, "isConstant": false, "isLValue": false, "isPure": false, @@ -18496,43 +18496,43 @@ "typeString": "tuple()" } }, - "id": 2312, + "id": 2343, "nodeType": "ExpressionStatement", "src": "8410:39:11" } ] }, "documentation": { - "id": 2296, + "id": 2327, "nodeType": "StructuredDocumentation", "src": "8247:55:11", "text": " @dev See {IERC721-safeTransferFrom}." }, "functionSelector": "42842e0e", - "id": 2314, + "id": 2345, "implemented": true, "kind": "function", "modifiers": [], "name": "safeTransferFrom", "nodeType": "FunctionDefinition", "overrides": { - "id": 2304, + "id": 2335, "nodeType": "OverrideSpecifier", "overrides": [], "src": "8391:8:11" }, "parameters": { - "id": 2303, + "id": 2334, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2298, + "id": 2329, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2314, + "scope": 2345, "src": "8333:12:11", "stateVariable": false, "storageLocation": "default", @@ -18541,7 +18541,7 @@ "typeString": "address" }, "typeName": { - "id": 2297, + "id": 2328, "name": "address", "nodeType": "ElementaryTypeName", "src": "8333:7:11", @@ -18556,12 +18556,12 @@ }, { "constant": false, - "id": 2300, + "id": 2331, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2314, + "scope": 2345, "src": "8347:10:11", "stateVariable": false, "storageLocation": "default", @@ -18570,7 +18570,7 @@ "typeString": "address" }, "typeName": { - "id": 2299, + "id": 2330, "name": "address", "nodeType": "ElementaryTypeName", "src": "8347:7:11", @@ -18585,12 +18585,12 @@ }, { "constant": false, - "id": 2302, + "id": 2333, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2314, + "scope": 2345, "src": "8359:15:11", "stateVariable": false, "storageLocation": "default", @@ -18599,7 +18599,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2301, + "id": 2332, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8359:7:11", @@ -18615,12 +18615,12 @@ "src": "8332:43:11" }, "returnParameters": { - "id": 2305, + "id": 2336, "nodeType": "ParameterList", "parameters": [], "src": "8400:0:11" }, - "scope": 2794, + "scope": 2825, "src": "8307:149:11", "stateMutability": "nonpayable", "virtual": true, @@ -18628,10 +18628,10 @@ }, { "baseFunctions": [ - 2939 + 2970 ], "body": { - "id": 2343, + "id": 2374, "nodeType": "Block", "src": "8635:169:11", "statements": [ @@ -18647,18 +18647,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2329, + "id": 2360, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "8672:10:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 2330, + "id": 2361, "isConstant": false, "isLValue": false, "isPure": false, @@ -18675,11 +18675,11 @@ }, { "argumentTypes": null, - "id": 2331, + "id": 2362, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2321, + "referencedDeclaration": 2352, "src": "8686:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -18698,18 +18698,18 @@ "typeString": "uint256" } ], - "id": 2328, + "id": 2359, "name": "_isApprovedOrOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2427, + "referencedDeclaration": 2458, "src": "8653:18:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) view returns (bool)" } }, - "id": 2332, + "id": 2363, "isConstant": false, "isLValue": false, "isPure": false, @@ -18727,7 +18727,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 2333, + "id": 2364, "isConstant": false, "isLValue": false, "isPure": true, @@ -18754,7 +18754,7 @@ "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" } ], - "id": 2327, + "id": 2358, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -18768,7 +18768,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2334, + "id": 2365, "isConstant": false, "isLValue": false, "isPure": false, @@ -18783,7 +18783,7 @@ "typeString": "tuple()" } }, - "id": 2335, + "id": 2366, "nodeType": "ExpressionStatement", "src": "8645:103:11" }, @@ -18793,11 +18793,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2337, + "id": 2368, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2317, + "referencedDeclaration": 2348, "src": "8772:4:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -18806,11 +18806,11 @@ }, { "argumentTypes": null, - "id": 2338, + "id": 2369, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2319, + "referencedDeclaration": 2350, "src": "8778:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -18819,11 +18819,11 @@ }, { "argumentTypes": null, - "id": 2339, + "id": 2370, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2321, + "referencedDeclaration": 2352, "src": "8782:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -18832,11 +18832,11 @@ }, { "argumentTypes": null, - "id": 2340, + "id": 2371, "name": "_data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2323, + "referencedDeclaration": 2354, "src": "8791:5:11", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -18863,18 +18863,18 @@ "typeString": "bytes memory" } ], - "id": 2336, + "id": 2367, "name": "_safeTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2373, + "referencedDeclaration": 2404, "src": "8758:13:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256,bytes memory)" } }, - "id": 2341, + "id": 2372, "isConstant": false, "isLValue": false, "isPure": false, @@ -18889,43 +18889,43 @@ "typeString": "tuple()" } }, - "id": 2342, + "id": 2373, "nodeType": "ExpressionStatement", "src": "8758:39:11" } ] }, "documentation": { - "id": 2315, + "id": 2346, "nodeType": "StructuredDocumentation", "src": "8462:55:11", "text": " @dev See {IERC721-safeTransferFrom}." }, "functionSelector": "b88d4fde", - "id": 2344, + "id": 2375, "implemented": true, "kind": "function", "modifiers": [], "name": "safeTransferFrom", "nodeType": "FunctionDefinition", "overrides": { - "id": 2325, + "id": 2356, "nodeType": "OverrideSpecifier", "overrides": [], "src": "8626:8:11" }, "parameters": { - "id": 2324, + "id": 2355, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2317, + "id": 2348, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2344, + "scope": 2375, "src": "8548:12:11", "stateVariable": false, "storageLocation": "default", @@ -18934,7 +18934,7 @@ "typeString": "address" }, "typeName": { - "id": 2316, + "id": 2347, "name": "address", "nodeType": "ElementaryTypeName", "src": "8548:7:11", @@ -18949,12 +18949,12 @@ }, { "constant": false, - "id": 2319, + "id": 2350, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2344, + "scope": 2375, "src": "8562:10:11", "stateVariable": false, "storageLocation": "default", @@ -18963,7 +18963,7 @@ "typeString": "address" }, "typeName": { - "id": 2318, + "id": 2349, "name": "address", "nodeType": "ElementaryTypeName", "src": "8562:7:11", @@ -18978,12 +18978,12 @@ }, { "constant": false, - "id": 2321, + "id": 2352, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2344, + "scope": 2375, "src": "8574:15:11", "stateVariable": false, "storageLocation": "default", @@ -18992,7 +18992,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2320, + "id": 2351, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8574:7:11", @@ -19006,12 +19006,12 @@ }, { "constant": false, - "id": 2323, + "id": 2354, "mutability": "mutable", "name": "_data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2344, + "scope": 2375, "src": "8591:18:11", "stateVariable": false, "storageLocation": "memory", @@ -19020,7 +19020,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2322, + "id": 2353, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8591:5:11", @@ -19036,12 +19036,12 @@ "src": "8547:63:11" }, "returnParameters": { - "id": 2326, + "id": 2357, "nodeType": "ParameterList", "parameters": [], "src": "8635:0:11" }, - "scope": 2794, + "scope": 2825, "src": "8522:282:11", "stateMutability": "nonpayable", "virtual": true, @@ -19049,7 +19049,7 @@ }, { "body": { - "id": 2372, + "id": 2403, "nodeType": "Block", "src": "9768:166:11", "statements": [ @@ -19059,11 +19059,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2357, + "id": 2388, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2347, + "referencedDeclaration": 2378, "src": "9788:4:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -19072,11 +19072,11 @@ }, { "argumentTypes": null, - "id": 2358, + "id": 2389, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2349, + "referencedDeclaration": 2380, "src": "9794:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -19085,11 +19085,11 @@ }, { "argumentTypes": null, - "id": 2359, + "id": 2390, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2351, + "referencedDeclaration": 2382, "src": "9798:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19112,18 +19112,18 @@ "typeString": "uint256" } ], - "id": 2356, + "id": 2387, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2669, + "referencedDeclaration": 2700, "src": "9778:9:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2360, + "id": 2391, "isConstant": false, "isLValue": false, "isPure": false, @@ -19138,7 +19138,7 @@ "typeString": "tuple()" } }, - "id": 2361, + "id": 2392, "nodeType": "ExpressionStatement", "src": "9778:28:11" }, @@ -19151,11 +19151,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2364, + "id": 2395, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2347, + "referencedDeclaration": 2378, "src": "9847:4:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -19164,11 +19164,11 @@ }, { "argumentTypes": null, - "id": 2365, + "id": 2396, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2349, + "referencedDeclaration": 2380, "src": "9853:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -19177,11 +19177,11 @@ }, { "argumentTypes": null, - "id": 2366, + "id": 2397, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2351, + "referencedDeclaration": 2382, "src": "9857:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19190,11 +19190,11 @@ }, { "argumentTypes": null, - "id": 2367, + "id": 2398, "name": "_data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2353, + "referencedDeclaration": 2384, "src": "9866:5:11", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -19221,18 +19221,18 @@ "typeString": "bytes memory" } ], - "id": 2363, + "id": 2394, "name": "_checkOnERC721Received", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2760, + "referencedDeclaration": 2791, "src": "9824:22:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,address,uint256,bytes memory) returns (bool)" } }, - "id": 2368, + "id": 2399, "isConstant": false, "isLValue": false, "isPure": false, @@ -19250,7 +19250,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 2369, + "id": 2400, "isConstant": false, "isLValue": false, "isPure": true, @@ -19277,7 +19277,7 @@ "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" } ], - "id": 2362, + "id": 2393, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -19291,7 +19291,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2370, + "id": 2401, "isConstant": false, "isLValue": false, "isPure": false, @@ -19306,19 +19306,19 @@ "typeString": "tuple()" } }, - "id": 2371, + "id": 2402, "nodeType": "ExpressionStatement", "src": "9816:111:11" } ] }, "documentation": { - "id": 2345, + "id": 2376, "nodeType": "StructuredDocumentation", "src": "8810:850:11", "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mecanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." }, - "id": 2373, + "id": 2404, "implemented": true, "kind": "function", "modifiers": [], @@ -19326,17 +19326,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2354, + "id": 2385, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2347, + "id": 2378, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2373, + "scope": 2404, "src": "9688:12:11", "stateVariable": false, "storageLocation": "default", @@ -19345,7 +19345,7 @@ "typeString": "address" }, "typeName": { - "id": 2346, + "id": 2377, "name": "address", "nodeType": "ElementaryTypeName", "src": "9688:7:11", @@ -19360,12 +19360,12 @@ }, { "constant": false, - "id": 2349, + "id": 2380, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2373, + "scope": 2404, "src": "9702:10:11", "stateVariable": false, "storageLocation": "default", @@ -19374,7 +19374,7 @@ "typeString": "address" }, "typeName": { - "id": 2348, + "id": 2379, "name": "address", "nodeType": "ElementaryTypeName", "src": "9702:7:11", @@ -19389,12 +19389,12 @@ }, { "constant": false, - "id": 2351, + "id": 2382, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2373, + "scope": 2404, "src": "9714:15:11", "stateVariable": false, "storageLocation": "default", @@ -19403,7 +19403,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2350, + "id": 2381, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9714:7:11", @@ -19417,12 +19417,12 @@ }, { "constant": false, - "id": 2353, + "id": 2384, "mutability": "mutable", "name": "_data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2373, + "scope": 2404, "src": "9731:18:11", "stateVariable": false, "storageLocation": "memory", @@ -19431,7 +19431,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2352, + "id": 2383, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "9731:5:11", @@ -19447,12 +19447,12 @@ "src": "9687:63:11" }, "returnParameters": { - "id": 2355, + "id": 2386, "nodeType": "ParameterList", "parameters": [], "src": "9768:0:11" }, - "scope": 2794, + "scope": 2825, "src": "9665:269:11", "stateMutability": "nonpayable", "virtual": true, @@ -19460,7 +19460,7 @@ }, { "body": { - "id": 2386, + "id": 2417, "nodeType": "Block", "src": "10300:54:11", "statements": [ @@ -19470,11 +19470,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2383, + "id": 2414, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2376, + "referencedDeclaration": 2407, "src": "10339:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19491,32 +19491,32 @@ ], "expression": { "argumentTypes": null, - "id": 2381, + "id": 2412, "name": "_tokenOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1911, + "referencedDeclaration": 1942, "src": "10317:12:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage", "typeString": "struct EnumerableMap.UintToAddressMap storage ref" } }, - "id": 2382, + "id": 2413, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3619, + "referencedDeclaration": 3650, "src": "10317:21:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$3550_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$3550_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$3581_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$3581_storage_ptr_$", "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" } }, - "id": 2384, + "id": 2415, "isConstant": false, "isLValue": false, "isPure": false, @@ -19531,20 +19531,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 2380, - "id": 2385, + "functionReturnParameters": 2411, + "id": 2416, "nodeType": "Return", "src": "10310:37:11" } ] }, "documentation": { - "id": 2374, + "id": 2405, "nodeType": "StructuredDocumentation", "src": "9940:292:11", "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." }, - "id": 2387, + "id": 2418, "implemented": true, "kind": "function", "modifiers": [], @@ -19552,17 +19552,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2377, + "id": 2408, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2376, + "id": 2407, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2387, + "scope": 2418, "src": "10254:15:11", "stateVariable": false, "storageLocation": "default", @@ -19571,7 +19571,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2375, + "id": 2406, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10254:7:11", @@ -19587,17 +19587,17 @@ "src": "10253:17:11" }, "returnParameters": { - "id": 2380, + "id": 2411, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2379, + "id": 2410, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2387, + "scope": 2418, "src": "10294:4:11", "stateVariable": false, "storageLocation": "default", @@ -19606,7 +19606,7 @@ "typeString": "bool" }, "typeName": { - "id": 2378, + "id": 2409, "name": "bool", "nodeType": "ElementaryTypeName", "src": "10294:4:11", @@ -19621,7 +19621,7 @@ ], "src": "10293:6:11" }, - "scope": 2794, + "scope": 2825, "src": "10237:117:11", "stateMutability": "view", "virtual": false, @@ -19629,7 +19629,7 @@ }, { "body": { - "id": 2426, + "id": 2457, "nodeType": "Block", "src": "10603:238:11", "statements": [ @@ -19642,11 +19642,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2399, + "id": 2430, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2392, + "referencedDeclaration": 2423, "src": "10629:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19661,18 +19661,18 @@ "typeString": "uint256" } ], - "id": 2398, + "id": 2429, "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2387, + "referencedDeclaration": 2418, "src": "10621:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 2400, + "id": 2431, "isConstant": false, "isLValue": false, "isPure": false, @@ -19690,7 +19690,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 2401, + "id": 2432, "isConstant": false, "isLValue": false, "isPure": true, @@ -19717,7 +19717,7 @@ "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" } ], - "id": 2397, + "id": 2428, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -19731,7 +19731,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2402, + "id": 2433, "isConstant": false, "isLValue": false, "isPure": false, @@ -19746,23 +19746,23 @@ "typeString": "tuple()" } }, - "id": 2403, + "id": 2434, "nodeType": "ExpressionStatement", "src": "10613:73:11" }, { "assignments": [ - 2405 + 2436 ], "declarations": [ { "constant": false, - "id": 2405, + "id": 2436, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2426, + "scope": 2457, "src": "10696:13:11", "stateVariable": false, "storageLocation": "default", @@ -19771,7 +19771,7 @@ "typeString": "address" }, "typeName": { - "id": 2404, + "id": 2435, "name": "address", "nodeType": "ElementaryTypeName", "src": "10696:7:11", @@ -19785,17 +19785,17 @@ "visibility": "internal" } ], - "id": 2409, + "id": 2440, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2407, + "id": 2438, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2392, + "referencedDeclaration": 2423, "src": "10720:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19810,18 +19810,18 @@ "typeString": "uint256" } ], - "id": 2406, + "id": 2437, "name": "ownerOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2011, + "referencedDeclaration": 2042, "src": "10712:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, - "id": 2408, + "id": 2439, "isConstant": false, "isLValue": false, "isPure": false, @@ -19849,7 +19849,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2423, + "id": 2454, "isConstant": false, "isLValue": false, "isPure": false, @@ -19860,7 +19860,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2418, + "id": 2449, "isConstant": false, "isLValue": false, "isPure": false, @@ -19871,18 +19871,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2412, + "id": 2443, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2410, + "id": 2441, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2390, + "referencedDeclaration": 2421, "src": "10746:7:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -19893,11 +19893,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2411, + "id": 2442, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2405, + "referencedDeclaration": 2436, "src": "10757:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -19918,7 +19918,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2417, + "id": 2448, "isConstant": false, "isLValue": false, "isPure": false, @@ -19928,11 +19928,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2414, + "id": 2445, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2392, + "referencedDeclaration": 2423, "src": "10778:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19947,18 +19947,18 @@ "typeString": "uint256" } ], - "id": 2413, + "id": 2444, "name": "getApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2216, + "referencedDeclaration": 2247, "src": "10766:11:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, - "id": 2415, + "id": 2446, "isConstant": false, "isLValue": false, "isPure": false, @@ -19977,11 +19977,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2416, + "id": 2447, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2390, + "referencedDeclaration": 2421, "src": "10790:7:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -20007,11 +20007,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2420, + "id": 2451, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2405, + "referencedDeclaration": 2436, "src": "10818:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -20020,11 +20020,11 @@ }, { "argumentTypes": null, - "id": 2421, + "id": 2452, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2390, + "referencedDeclaration": 2421, "src": "10825:7:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -20043,18 +20043,18 @@ "typeString": "address" } ], - "id": 2419, + "id": 2450, "name": "isApprovedForAll", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, + "referencedDeclaration": 2299, "src": "10801:16:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) view returns (bool)" } }, - "id": 2422, + "id": 2453, "isConstant": false, "isLValue": false, "isPure": false, @@ -20076,7 +20076,7 @@ } } ], - "id": 2424, + "id": 2455, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -20089,20 +20089,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 2396, - "id": 2425, + "functionReturnParameters": 2427, + "id": 2456, "nodeType": "Return", "src": "10738:96:11" } ] }, "documentation": { - "id": 2388, + "id": 2419, "nodeType": "StructuredDocumentation", "src": "10360:147:11", "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." }, - "id": 2427, + "id": 2458, "implemented": true, "kind": "function", "modifiers": [], @@ -20110,17 +20110,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2393, + "id": 2424, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2390, + "id": 2421, "mutability": "mutable", "name": "spender", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2427, + "scope": 2458, "src": "10540:15:11", "stateVariable": false, "storageLocation": "default", @@ -20129,7 +20129,7 @@ "typeString": "address" }, "typeName": { - "id": 2389, + "id": 2420, "name": "address", "nodeType": "ElementaryTypeName", "src": "10540:7:11", @@ -20144,12 +20144,12 @@ }, { "constant": false, - "id": 2392, + "id": 2423, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2427, + "scope": 2458, "src": "10557:15:11", "stateVariable": false, "storageLocation": "default", @@ -20158,7 +20158,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2391, + "id": 2422, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10557:7:11", @@ -20174,17 +20174,17 @@ "src": "10539:34:11" }, "returnParameters": { - "id": 2396, + "id": 2427, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2395, + "id": 2426, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2427, + "scope": 2458, "src": "10597:4:11", "stateVariable": false, "storageLocation": "default", @@ -20193,7 +20193,7 @@ "typeString": "bool" }, "typeName": { - "id": 2394, + "id": 2425, "name": "bool", "nodeType": "ElementaryTypeName", "src": "10597:4:11", @@ -20208,7 +20208,7 @@ ], "src": "10596:6:11" }, - "scope": 2794, + "scope": 2825, "src": "10512:329:11", "stateMutability": "view", "virtual": false, @@ -20216,7 +20216,7 @@ }, { "body": { - "id": 2441, + "id": 2472, "nodeType": "Block", "src": "11237:43:11", "statements": [ @@ -20226,11 +20226,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2436, + "id": 2467, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2430, + "referencedDeclaration": 2461, "src": "11257:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -20239,11 +20239,11 @@ }, { "argumentTypes": null, - "id": 2437, + "id": 2468, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2432, + "referencedDeclaration": 2463, "src": "11261:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -20253,7 +20253,7 @@ { "argumentTypes": null, "hexValue": "", - "id": 2438, + "id": 2469, "isConstant": false, "isLValue": false, "isPure": true, @@ -20284,21 +20284,21 @@ "typeString": "literal_string \"\"" } ], - "id": 2435, + "id": 2466, "name": "_safeMint", "nodeType": "Identifier", "overloadedDeclarations": [ - 2442, - 2471 + 2473, + 2502 ], - "referencedDeclaration": 2471, + "referencedDeclaration": 2502, "src": "11247:9:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,bytes memory)" } }, - "id": 2439, + "id": 2470, "isConstant": false, "isLValue": false, "isPure": false, @@ -20313,19 +20313,19 @@ "typeString": "tuple()" } }, - "id": 2440, + "id": 2471, "nodeType": "ExpressionStatement", "src": "11247:26:11" } ] }, "documentation": { - "id": 2428, + "id": 2459, "nodeType": "StructuredDocumentation", "src": "10847:320:11", "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." }, - "id": 2442, + "id": 2473, "implemented": true, "kind": "function", "modifiers": [], @@ -20333,17 +20333,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2433, + "id": 2464, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2430, + "id": 2461, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2442, + "scope": 2473, "src": "11191:10:11", "stateVariable": false, "storageLocation": "default", @@ -20352,7 +20352,7 @@ "typeString": "address" }, "typeName": { - "id": 2429, + "id": 2460, "name": "address", "nodeType": "ElementaryTypeName", "src": "11191:7:11", @@ -20367,12 +20367,12 @@ }, { "constant": false, - "id": 2432, + "id": 2463, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2442, + "scope": 2473, "src": "11203:15:11", "stateVariable": false, "storageLocation": "default", @@ -20381,7 +20381,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2431, + "id": 2462, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11203:7:11", @@ -20397,12 +20397,12 @@ "src": "11190:29:11" }, "returnParameters": { - "id": 2434, + "id": 2465, "nodeType": "ParameterList", "parameters": [], "src": "11237:0:11" }, - "scope": 2794, + "scope": 2825, "src": "11172:108:11", "stateMutability": "nonpayable", "virtual": true, @@ -20410,7 +20410,7 @@ }, { "body": { - "id": 2470, + "id": 2501, "nodeType": "Block", "src": "11586:162:11", "statements": [ @@ -20420,11 +20420,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2453, + "id": 2484, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, + "referencedDeclaration": 2476, "src": "11602:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -20433,11 +20433,11 @@ }, { "argumentTypes": null, - "id": 2454, + "id": 2485, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2447, + "referencedDeclaration": 2478, "src": "11606:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -20456,18 +20456,18 @@ "typeString": "uint256" } ], - "id": 2452, + "id": 2483, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2530, + "referencedDeclaration": 2561, "src": "11596:5:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 2455, + "id": 2486, "isConstant": false, "isLValue": false, "isPure": false, @@ -20482,7 +20482,7 @@ "typeString": "tuple()" } }, - "id": 2456, + "id": 2487, "nodeType": "ExpressionStatement", "src": "11596:18:11" }, @@ -20499,7 +20499,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2461, + "id": 2492, "isConstant": false, "isLValue": false, "isPure": true, @@ -20522,7 +20522,7 @@ "typeString": "int_const 0" } ], - "id": 2460, + "id": 2491, "isConstant": false, "isLValue": false, "isPure": true, @@ -20534,7 +20534,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 2459, + "id": 2490, "name": "address", "nodeType": "ElementaryTypeName", "src": "11655:7:11", @@ -20544,7 +20544,7 @@ } } }, - "id": 2462, + "id": 2493, "isConstant": false, "isLValue": false, "isPure": true, @@ -20561,11 +20561,11 @@ }, { "argumentTypes": null, - "id": 2463, + "id": 2494, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, + "referencedDeclaration": 2476, "src": "11667:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -20574,11 +20574,11 @@ }, { "argumentTypes": null, - "id": 2464, + "id": 2495, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2447, + "referencedDeclaration": 2478, "src": "11671:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -20587,11 +20587,11 @@ }, { "argumentTypes": null, - "id": 2465, + "id": 2496, "name": "_data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2449, + "referencedDeclaration": 2480, "src": "11680:5:11", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -20618,18 +20618,18 @@ "typeString": "bytes memory" } ], - "id": 2458, + "id": 2489, "name": "_checkOnERC721Received", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2760, + "referencedDeclaration": 2791, "src": "11632:22:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,address,uint256,bytes memory) returns (bool)" } }, - "id": 2466, + "id": 2497, "isConstant": false, "isLValue": false, "isPure": false, @@ -20647,7 +20647,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 2467, + "id": 2498, "isConstant": false, "isLValue": false, "isPure": true, @@ -20674,7 +20674,7 @@ "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" } ], - "id": 2457, + "id": 2488, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -20688,7 +20688,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2468, + "id": 2499, "isConstant": false, "isLValue": false, "isPure": false, @@ -20703,19 +20703,19 @@ "typeString": "tuple()" } }, - "id": 2469, + "id": 2500, "nodeType": "ExpressionStatement", "src": "11624:117:11" } ] }, "documentation": { - "id": 2443, + "id": 2474, "nodeType": "StructuredDocumentation", "src": "11286:210:11", "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." }, - "id": 2471, + "id": 2502, "implemented": true, "kind": "function", "modifiers": [], @@ -20723,17 +20723,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2450, + "id": 2481, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2445, + "id": 2476, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2471, + "scope": 2502, "src": "11520:10:11", "stateVariable": false, "storageLocation": "default", @@ -20742,7 +20742,7 @@ "typeString": "address" }, "typeName": { - "id": 2444, + "id": 2475, "name": "address", "nodeType": "ElementaryTypeName", "src": "11520:7:11", @@ -20757,12 +20757,12 @@ }, { "constant": false, - "id": 2447, + "id": 2478, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2471, + "scope": 2502, "src": "11532:15:11", "stateVariable": false, "storageLocation": "default", @@ -20771,7 +20771,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2446, + "id": 2477, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11532:7:11", @@ -20785,12 +20785,12 @@ }, { "constant": false, - "id": 2449, + "id": 2480, "mutability": "mutable", "name": "_data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2471, + "scope": 2502, "src": "11549:18:11", "stateVariable": false, "storageLocation": "memory", @@ -20799,7 +20799,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2448, + "id": 2479, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "11549:5:11", @@ -20815,12 +20815,12 @@ "src": "11519:49:11" }, "returnParameters": { - "id": 2451, + "id": 2482, "nodeType": "ParameterList", "parameters": [], "src": "11586:0:11" }, - "scope": 2794, + "scope": 2825, "src": "11501:247:11", "stateMutability": "nonpayable", "virtual": true, @@ -20828,7 +20828,7 @@ }, { "body": { - "id": 2529, + "id": 2560, "nodeType": "Block", "src": "12131:332:11", "statements": [ @@ -20842,18 +20842,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2485, + "id": 2516, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2480, + "id": 2511, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2474, + "referencedDeclaration": 2505, "src": "12149:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -20868,7 +20868,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2483, + "id": 2514, "isConstant": false, "isLValue": false, "isPure": true, @@ -20891,7 +20891,7 @@ "typeString": "int_const 0" } ], - "id": 2482, + "id": 2513, "isConstant": false, "isLValue": false, "isPure": true, @@ -20903,7 +20903,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 2481, + "id": 2512, "name": "address", "nodeType": "ElementaryTypeName", "src": "12155:7:11", @@ -20913,7 +20913,7 @@ } } }, - "id": 2484, + "id": 2515, "isConstant": false, "isLValue": false, "isPure": true, @@ -20937,7 +20937,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 2486, + "id": 2517, "isConstant": false, "isLValue": false, "isPure": true, @@ -20964,7 +20964,7 @@ "typeString": "literal_string \"ERC721: mint to the zero address\"" } ], - "id": 2479, + "id": 2510, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -20978,7 +20978,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2487, + "id": 2518, "isConstant": false, "isLValue": false, "isPure": false, @@ -20993,7 +20993,7 @@ "typeString": "tuple()" } }, - "id": 2488, + "id": 2519, "nodeType": "ExpressionStatement", "src": "12141:61:11" }, @@ -21003,7 +21003,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2493, + "id": 2524, "isConstant": false, "isLValue": false, "isPure": false, @@ -21017,11 +21017,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2491, + "id": 2522, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2476, + "referencedDeclaration": 2507, "src": "12229:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -21036,18 +21036,18 @@ "typeString": "uint256" } ], - "id": 2490, + "id": 2521, "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2387, + "referencedDeclaration": 2418, "src": "12221:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 2492, + "id": 2523, "isConstant": false, "isLValue": false, "isPure": false, @@ -21070,7 +21070,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 2494, + "id": 2525, "isConstant": false, "isLValue": false, "isPure": true, @@ -21097,7 +21097,7 @@ "typeString": "literal_string \"ERC721: token already minted\"" } ], - "id": 2489, + "id": 2520, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -21111,7 +21111,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2495, + "id": 2526, "isConstant": false, "isLValue": false, "isPure": false, @@ -21126,7 +21126,7 @@ "typeString": "tuple()" } }, - "id": 2496, + "id": 2527, "nodeType": "ExpressionStatement", "src": "12212:58:11" }, @@ -21140,7 +21140,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2500, + "id": 2531, "isConstant": false, "isLValue": false, "isPure": true, @@ -21163,7 +21163,7 @@ "typeString": "int_const 0" } ], - "id": 2499, + "id": 2530, "isConstant": false, "isLValue": false, "isPure": true, @@ -21175,7 +21175,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 2498, + "id": 2529, "name": "address", "nodeType": "ElementaryTypeName", "src": "12302:7:11", @@ -21185,7 +21185,7 @@ } } }, - "id": 2501, + "id": 2532, "isConstant": false, "isLValue": false, "isPure": true, @@ -21202,11 +21202,11 @@ }, { "argumentTypes": null, - "id": 2502, + "id": 2533, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2474, + "referencedDeclaration": 2505, "src": "12314:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -21215,11 +21215,11 @@ }, { "argumentTypes": null, - "id": 2503, + "id": 2534, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2476, + "referencedDeclaration": 2507, "src": "12318:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -21242,18 +21242,18 @@ "typeString": "uint256" } ], - "id": 2497, + "id": 2528, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2793, + "referencedDeclaration": 2824, "src": "12281:20:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2504, + "id": 2535, "isConstant": false, "isLValue": false, "isPure": false, @@ -21268,7 +21268,7 @@ "typeString": "tuple()" } }, - "id": 2505, + "id": 2536, "nodeType": "ExpressionStatement", "src": "12281:45:11" }, @@ -21278,11 +21278,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2510, + "id": 2541, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2476, + "referencedDeclaration": 2507, "src": "12359:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -21301,25 +21301,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2506, + "id": 2537, "name": "_holderTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1909, + "referencedDeclaration": 1940, "src": "12337:13:11", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4025_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4056_storage_$", "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" } }, - "id": 2508, + "id": 2539, "indexExpression": { "argumentTypes": null, - "id": 2507, + "id": 2538, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2474, + "referencedDeclaration": 2505, "src": "12351:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -21333,25 +21333,25 @@ "nodeType": "IndexAccess", "src": "12337:17:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage", + "typeIdentifier": "t_struct$_UintSet_$4056_storage", "typeString": "struct EnumerableSet.UintSet storage ref" } }, - "id": 2509, + "id": 2540, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4045, + "referencedDeclaration": 4076, "src": "12337:21:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$4025_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$4025_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$4056_storage_ptr_$", "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" } }, - "id": 2511, + "id": 2542, "isConstant": false, "isLValue": false, "isPure": false, @@ -21366,7 +21366,7 @@ "typeString": "bool" } }, - "id": 2512, + "id": 2543, "nodeType": "ExpressionStatement", "src": "12337:30:11" }, @@ -21376,11 +21376,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2516, + "id": 2547, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2476, + "referencedDeclaration": 2507, "src": "12395:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -21389,11 +21389,11 @@ }, { "argumentTypes": null, - "id": 2517, + "id": 2548, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2474, + "referencedDeclaration": 2505, "src": "12404:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -21414,32 +21414,32 @@ ], "expression": { "argumentTypes": null, - "id": 2513, + "id": 2544, "name": "_tokenOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1911, + "referencedDeclaration": 1942, "src": "12378:12:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage", "typeString": "struct EnumerableMap.UintToAddressMap storage ref" } }, - "id": 2515, + "id": 2546, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "set", "nodeType": "MemberAccess", - "referencedDeclaration": 3579, + "referencedDeclaration": 3610, "src": "12378:16:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$3550_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$3550_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$3581_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$3581_storage_ptr_$", "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" } }, - "id": 2518, + "id": 2549, "isConstant": false, "isLValue": false, "isPure": false, @@ -21454,7 +21454,7 @@ "typeString": "bool" } }, - "id": 2519, + "id": 2550, "nodeType": "ExpressionStatement", "src": "12378:29:11" }, @@ -21468,7 +21468,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2523, + "id": 2554, "isConstant": false, "isLValue": false, "isPure": true, @@ -21491,7 +21491,7 @@ "typeString": "int_const 0" } ], - "id": 2522, + "id": 2553, "isConstant": false, "isLValue": false, "isPure": true, @@ -21503,7 +21503,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 2521, + "id": 2552, "name": "address", "nodeType": "ElementaryTypeName", "src": "12432:7:11", @@ -21513,7 +21513,7 @@ } } }, - "id": 2524, + "id": 2555, "isConstant": false, "isLValue": false, "isPure": true, @@ -21530,11 +21530,11 @@ }, { "argumentTypes": null, - "id": 2525, + "id": 2556, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2474, + "referencedDeclaration": 2505, "src": "12444:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -21543,11 +21543,11 @@ }, { "argumentTypes": null, - "id": 2526, + "id": 2557, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2476, + "referencedDeclaration": 2507, "src": "12448:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -21570,18 +21570,18 @@ "typeString": "uint256" } ], - "id": 2520, + "id": 2551, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2839, + "referencedDeclaration": 2870, "src": "12423:8:11", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2527, + "id": 2558, "isConstant": false, "isLValue": false, "isPure": false, @@ -21596,19 +21596,19 @@ "typeString": "tuple()" } }, - "id": 2528, + "id": 2559, "nodeType": "EmitStatement", "src": "12418:38:11" } ] }, "documentation": { - "id": 2472, + "id": 2503, "nodeType": "StructuredDocumentation", "src": "11754:311:11", "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." }, - "id": 2530, + "id": 2561, "implemented": true, "kind": "function", "modifiers": [], @@ -21616,17 +21616,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2477, + "id": 2508, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2474, + "id": 2505, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2530, + "scope": 2561, "src": "12085:10:11", "stateVariable": false, "storageLocation": "default", @@ -21635,7 +21635,7 @@ "typeString": "address" }, "typeName": { - "id": 2473, + "id": 2504, "name": "address", "nodeType": "ElementaryTypeName", "src": "12085:7:11", @@ -21650,12 +21650,12 @@ }, { "constant": false, - "id": 2476, + "id": 2507, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2530, + "scope": 2561, "src": "12097:15:11", "stateVariable": false, "storageLocation": "default", @@ -21664,7 +21664,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2475, + "id": 2506, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12097:7:11", @@ -21680,12 +21680,12 @@ "src": "12084:29:11" }, "returnParameters": { - "id": 2478, + "id": 2509, "nodeType": "ParameterList", "parameters": [], "src": "12131:0:11" }, - "scope": 2794, + "scope": 2825, "src": "12070:393:11", "stateMutability": "nonpayable", "virtual": true, @@ -21693,23 +21693,23 @@ }, { "body": { - "id": 2597, + "id": 2628, "nodeType": "Block", "src": "12729:453:11", "statements": [ { "assignments": [ - 2537 + 2568 ], "declarations": [ { "constant": false, - "id": 2537, + "id": 2568, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2597, + "scope": 2628, "src": "12739:13:11", "stateVariable": false, "storageLocation": "default", @@ -21718,7 +21718,7 @@ "typeString": "address" }, "typeName": { - "id": 2536, + "id": 2567, "name": "address", "nodeType": "ElementaryTypeName", "src": "12739:7:11", @@ -21732,17 +21732,17 @@ "visibility": "internal" } ], - "id": 2541, + "id": 2572, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2539, + "id": 2570, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 2564, "src": "12763:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -21757,18 +21757,18 @@ "typeString": "uint256" } ], - "id": 2538, + "id": 2569, "name": "ownerOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2011, + "referencedDeclaration": 2042, "src": "12755:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, - "id": 2540, + "id": 2571, "isConstant": false, "isLValue": false, "isPure": false, @@ -21792,11 +21792,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2543, + "id": 2574, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2537, + "referencedDeclaration": 2568, "src": "12803:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -21809,7 +21809,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2546, + "id": 2577, "isConstant": false, "isLValue": false, "isPure": true, @@ -21832,7 +21832,7 @@ "typeString": "int_const 0" } ], - "id": 2545, + "id": 2576, "isConstant": false, "isLValue": false, "isPure": true, @@ -21844,7 +21844,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 2544, + "id": 2575, "name": "address", "nodeType": "ElementaryTypeName", "src": "12810:7:11", @@ -21854,7 +21854,7 @@ } } }, - "id": 2547, + "id": 2578, "isConstant": false, "isLValue": false, "isPure": true, @@ -21871,11 +21871,11 @@ }, { "argumentTypes": null, - "id": 2548, + "id": 2579, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 2564, "src": "12822:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -21898,18 +21898,18 @@ "typeString": "uint256" } ], - "id": 2542, + "id": 2573, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2793, + "referencedDeclaration": 2824, "src": "12782:20:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2549, + "id": 2580, "isConstant": false, "isLValue": false, "isPure": false, @@ -21924,7 +21924,7 @@ "typeString": "tuple()" } }, - "id": 2550, + "id": 2581, "nodeType": "ExpressionStatement", "src": "12782:48:11" }, @@ -21938,7 +21938,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2554, + "id": 2585, "isConstant": false, "isLValue": false, "isPure": true, @@ -21961,7 +21961,7 @@ "typeString": "int_const 0" } ], - "id": 2553, + "id": 2584, "isConstant": false, "isLValue": false, "isPure": true, @@ -21973,7 +21973,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 2552, + "id": 2583, "name": "address", "nodeType": "ElementaryTypeName", "src": "12877:7:11", @@ -21983,7 +21983,7 @@ } } }, - "id": 2555, + "id": 2586, "isConstant": false, "isLValue": false, "isPure": true, @@ -22000,11 +22000,11 @@ }, { "argumentTypes": null, - "id": 2556, + "id": 2587, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 2564, "src": "12889:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -22023,18 +22023,18 @@ "typeString": "uint256" } ], - "id": 2551, + "id": 2582, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2782, + "referencedDeclaration": 2813, "src": "12868:8:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 2557, + "id": 2588, "isConstant": false, "isLValue": false, "isPure": false, @@ -22049,7 +22049,7 @@ "typeString": "tuple()" } }, - "id": 2558, + "id": 2589, "nodeType": "ExpressionStatement", "src": "12868:29:11" }, @@ -22060,7 +22060,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2567, + "id": 2598, "isConstant": false, "isLValue": false, "isPure": false, @@ -22074,25 +22074,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2561, + "id": 2592, "name": "_tokenURIs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1929, + "referencedDeclaration": 1960, "src": "12953:10:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", "typeString": "mapping(uint256 => string storage ref)" } }, - "id": 2563, + "id": 2594, "indexExpression": { "argumentTypes": null, - "id": 2562, + "id": 2593, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 2564, "src": "12964:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -22118,7 +22118,7 @@ "typeString": "string storage ref" } ], - "id": 2560, + "id": 2591, "isConstant": false, "isLValue": false, "isPure": true, @@ -22130,7 +22130,7 @@ "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 2559, + "id": 2590, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "12947:5:11", @@ -22140,7 +22140,7 @@ } } }, - "id": 2564, + "id": 2595, "isConstant": false, "isLValue": false, "isPure": false, @@ -22155,7 +22155,7 @@ "typeString": "bytes storage pointer" } }, - "id": 2565, + "id": 2596, "isConstant": false, "isLValue": false, "isPure": false, @@ -22174,7 +22174,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2566, + "id": 2597, "isConstant": false, "isLValue": false, "isPure": true, @@ -22196,18 +22196,18 @@ } }, "falseBody": null, - "id": 2574, + "id": 2605, "nodeType": "IfStatement", "src": "12943:95:11", "trueBody": { - "id": 2573, + "id": 2604, "nodeType": "Block", "src": "12987:51:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 2571, + "id": 2602, "isConstant": false, "isLValue": false, "isPure": false, @@ -22220,25 +22220,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2568, + "id": 2599, "name": "_tokenURIs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1929, + "referencedDeclaration": 1960, "src": "13008:10:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", "typeString": "mapping(uint256 => string storage ref)" } }, - "id": 2570, + "id": 2601, "indexExpression": { "argumentTypes": null, - "id": 2569, + "id": 2600, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 2564, "src": "13019:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -22261,7 +22261,7 @@ "typeString": "tuple()" } }, - "id": 2572, + "id": 2603, "nodeType": "ExpressionStatement", "src": "13001:26:11" } @@ -22274,11 +22274,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2579, + "id": 2610, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 2564, "src": "13076:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -22297,25 +22297,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2575, + "id": 2606, "name": "_holderTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1909, + "referencedDeclaration": 1940, "src": "13048:13:11", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4025_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4056_storage_$", "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" } }, - "id": 2577, + "id": 2608, "indexExpression": { "argumentTypes": null, - "id": 2576, + "id": 2607, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2537, + "referencedDeclaration": 2568, "src": "13062:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -22329,25 +22329,25 @@ "nodeType": "IndexAccess", "src": "13048:20:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage", + "typeIdentifier": "t_struct$_UintSet_$4056_storage", "typeString": "struct EnumerableSet.UintSet storage ref" } }, - "id": 2578, + "id": 2609, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 4065, + "referencedDeclaration": 4096, "src": "13048:27:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$4025_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$4025_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$4056_storage_ptr_$", "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" } }, - "id": 2580, + "id": 2611, "isConstant": false, "isLValue": false, "isPure": false, @@ -22362,7 +22362,7 @@ "typeString": "bool" } }, - "id": 2581, + "id": 2612, "nodeType": "ExpressionStatement", "src": "13048:36:11" }, @@ -22372,11 +22372,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2585, + "id": 2616, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 2564, "src": "13115:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -22393,32 +22393,32 @@ ], "expression": { "argumentTypes": null, - "id": 2582, + "id": 2613, "name": "_tokenOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1911, + "referencedDeclaration": 1942, "src": "13095:12:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage", "typeString": "struct EnumerableMap.UintToAddressMap storage ref" } }, - "id": 2584, + "id": 2615, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 3599, + "referencedDeclaration": 3630, "src": "13095:19:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$3550_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$3550_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$3581_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$3581_storage_ptr_$", "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" } }, - "id": 2586, + "id": 2617, "isConstant": false, "isLValue": false, "isPure": false, @@ -22433,7 +22433,7 @@ "typeString": "bool" } }, - "id": 2587, + "id": 2618, "nodeType": "ExpressionStatement", "src": "13095:28:11" }, @@ -22443,11 +22443,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2589, + "id": 2620, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2537, + "referencedDeclaration": 2568, "src": "13148:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -22460,7 +22460,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2592, + "id": 2623, "isConstant": false, "isLValue": false, "isPure": true, @@ -22483,7 +22483,7 @@ "typeString": "int_const 0" } ], - "id": 2591, + "id": 2622, "isConstant": false, "isLValue": false, "isPure": true, @@ -22495,7 +22495,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 2590, + "id": 2621, "name": "address", "nodeType": "ElementaryTypeName", "src": "13155:7:11", @@ -22505,7 +22505,7 @@ } } }, - "id": 2593, + "id": 2624, "isConstant": false, "isLValue": false, "isPure": true, @@ -22522,11 +22522,11 @@ }, { "argumentTypes": null, - "id": 2594, + "id": 2625, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 2564, "src": "13167:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -22549,18 +22549,18 @@ "typeString": "uint256" } ], - "id": 2588, + "id": 2619, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2839, + "referencedDeclaration": 2870, "src": "13139:8:11", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2595, + "id": 2626, "isConstant": false, "isLValue": false, "isPure": false, @@ -22575,19 +22575,19 @@ "typeString": "tuple()" } }, - "id": 2596, + "id": 2627, "nodeType": "EmitStatement", "src": "13134:41:11" } ] }, "documentation": { - "id": 2531, + "id": 2562, "nodeType": "StructuredDocumentation", "src": "12469:206:11", "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." }, - "id": 2598, + "id": 2629, "implemented": true, "kind": "function", "modifiers": [], @@ -22595,17 +22595,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2534, + "id": 2565, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2533, + "id": 2564, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2598, + "scope": 2629, "src": "12695:15:11", "stateVariable": false, "storageLocation": "default", @@ -22614,7 +22614,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2532, + "id": 2563, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12695:7:11", @@ -22630,12 +22630,12 @@ "src": "12694:17:11" }, "returnParameters": { - "id": 2535, + "id": 2566, "nodeType": "ParameterList", "parameters": [], "src": "12729:0:11" }, - "scope": 2794, + "scope": 2825, "src": "12680:502:11", "stateMutability": "nonpayable", "virtual": true, @@ -22643,7 +22643,7 @@ }, { "body": { - "id": 2668, + "id": 2699, "nodeType": "Block", "src": "13585:480:11", "statements": [ @@ -22657,7 +22657,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2613, + "id": 2644, "isConstant": false, "isLValue": false, "isPure": false, @@ -22667,11 +22667,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2610, + "id": 2641, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2605, + "referencedDeclaration": 2636, "src": "13611:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -22686,18 +22686,18 @@ "typeString": "uint256" } ], - "id": 2609, + "id": 2640, "name": "ownerOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2011, + "referencedDeclaration": 2042, "src": "13603:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, - "id": 2611, + "id": 2642, "isConstant": false, "isLValue": false, "isPure": false, @@ -22716,11 +22716,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2612, + "id": 2643, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2601, + "referencedDeclaration": 2632, "src": "13623:4:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -22736,7 +22736,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 2614, + "id": 2645, "isConstant": false, "isLValue": false, "isPure": true, @@ -22763,7 +22763,7 @@ "typeString": "literal_string \"ERC721: transfer of token that is not own\"" } ], - "id": 2608, + "id": 2639, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -22777,7 +22777,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2615, + "id": 2646, "isConstant": false, "isLValue": false, "isPure": false, @@ -22792,7 +22792,7 @@ "typeString": "tuple()" } }, - "id": 2616, + "id": 2647, "nodeType": "ExpressionStatement", "src": "13595:78:11" }, @@ -22806,18 +22806,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2623, + "id": 2654, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2618, + "id": 2649, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2603, + "referencedDeclaration": 2634, "src": "13691:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -22832,7 +22832,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2621, + "id": 2652, "isConstant": false, "isLValue": false, "isPure": true, @@ -22855,7 +22855,7 @@ "typeString": "int_const 0" } ], - "id": 2620, + "id": 2651, "isConstant": false, "isLValue": false, "isPure": true, @@ -22867,7 +22867,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 2619, + "id": 2650, "name": "address", "nodeType": "ElementaryTypeName", "src": "13697:7:11", @@ -22877,7 +22877,7 @@ } } }, - "id": 2622, + "id": 2653, "isConstant": false, "isLValue": false, "isPure": true, @@ -22901,7 +22901,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 2624, + "id": 2655, "isConstant": false, "isLValue": false, "isPure": true, @@ -22928,7 +22928,7 @@ "typeString": "literal_string \"ERC721: transfer to the zero address\"" } ], - "id": 2617, + "id": 2648, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -22942,7 +22942,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2625, + "id": 2656, "isConstant": false, "isLValue": false, "isPure": false, @@ -22957,7 +22957,7 @@ "typeString": "tuple()" } }, - "id": 2626, + "id": 2657, "nodeType": "ExpressionStatement", "src": "13683:65:11" }, @@ -22967,11 +22967,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2628, + "id": 2659, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2601, + "referencedDeclaration": 2632, "src": "13780:4:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -22980,11 +22980,11 @@ }, { "argumentTypes": null, - "id": 2629, + "id": 2660, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2603, + "referencedDeclaration": 2634, "src": "13786:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -22993,11 +22993,11 @@ }, { "argumentTypes": null, - "id": 2630, + "id": 2661, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2605, + "referencedDeclaration": 2636, "src": "13790:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -23020,18 +23020,18 @@ "typeString": "uint256" } ], - "id": 2627, + "id": 2658, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2793, + "referencedDeclaration": 2824, "src": "13759:20:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2631, + "id": 2662, "isConstant": false, "isLValue": false, "isPure": false, @@ -23046,7 +23046,7 @@ "typeString": "tuple()" } }, - "id": 2632, + "id": 2663, "nodeType": "ExpressionStatement", "src": "13759:39:11" }, @@ -23060,7 +23060,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2636, + "id": 2667, "isConstant": false, "isLValue": false, "isPure": true, @@ -23083,7 +23083,7 @@ "typeString": "int_const 0" } ], - "id": 2635, + "id": 2666, "isConstant": false, "isLValue": false, "isPure": true, @@ -23095,7 +23095,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 2634, + "id": 2665, "name": "address", "nodeType": "ElementaryTypeName", "src": "13869:7:11", @@ -23105,7 +23105,7 @@ } } }, - "id": 2637, + "id": 2668, "isConstant": false, "isLValue": false, "isPure": true, @@ -23122,11 +23122,11 @@ }, { "argumentTypes": null, - "id": 2638, + "id": 2669, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2605, + "referencedDeclaration": 2636, "src": "13881:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -23145,18 +23145,18 @@ "typeString": "uint256" } ], - "id": 2633, + "id": 2664, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2782, + "referencedDeclaration": 2813, "src": "13860:8:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 2639, + "id": 2670, "isConstant": false, "isLValue": false, "isPure": false, @@ -23171,7 +23171,7 @@ "typeString": "tuple()" } }, - "id": 2640, + "id": 2671, "nodeType": "ExpressionStatement", "src": "13860:29:11" }, @@ -23181,11 +23181,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2645, + "id": 2676, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2605, + "referencedDeclaration": 2636, "src": "13927:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -23204,25 +23204,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2641, + "id": 2672, "name": "_holderTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1909, + "referencedDeclaration": 1940, "src": "13900:13:11", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4025_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4056_storage_$", "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" } }, - "id": 2643, + "id": 2674, "indexExpression": { "argumentTypes": null, - "id": 2642, + "id": 2673, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2601, + "referencedDeclaration": 2632, "src": "13914:4:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -23236,25 +23236,25 @@ "nodeType": "IndexAccess", "src": "13900:19:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage", + "typeIdentifier": "t_struct$_UintSet_$4056_storage", "typeString": "struct EnumerableSet.UintSet storage ref" } }, - "id": 2644, + "id": 2675, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 4065, + "referencedDeclaration": 4096, "src": "13900:26:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$4025_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$4025_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$4056_storage_ptr_$", "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" } }, - "id": 2646, + "id": 2677, "isConstant": false, "isLValue": false, "isPure": false, @@ -23269,7 +23269,7 @@ "typeString": "bool" } }, - "id": 2647, + "id": 2678, "nodeType": "ExpressionStatement", "src": "13900:35:11" }, @@ -23279,11 +23279,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2652, + "id": 2683, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2605, + "referencedDeclaration": 2636, "src": "13967:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -23302,25 +23302,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2648, + "id": 2679, "name": "_holderTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1909, + "referencedDeclaration": 1940, "src": "13945:13:11", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4025_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$4056_storage_$", "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" } }, - "id": 2650, + "id": 2681, "indexExpression": { "argumentTypes": null, - "id": 2649, + "id": 2680, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2603, + "referencedDeclaration": 2634, "src": "13959:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -23334,25 +23334,25 @@ "nodeType": "IndexAccess", "src": "13945:17:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage", + "typeIdentifier": "t_struct$_UintSet_$4056_storage", "typeString": "struct EnumerableSet.UintSet storage ref" } }, - "id": 2651, + "id": 2682, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4045, + "referencedDeclaration": 4076, "src": "13945:21:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$4025_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$4025_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$4056_storage_ptr_$", "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" } }, - "id": 2653, + "id": 2684, "isConstant": false, "isLValue": false, "isPure": false, @@ -23367,7 +23367,7 @@ "typeString": "bool" } }, - "id": 2654, + "id": 2685, "nodeType": "ExpressionStatement", "src": "13945:30:11" }, @@ -23377,11 +23377,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2658, + "id": 2689, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2605, + "referencedDeclaration": 2636, "src": "14003:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -23390,11 +23390,11 @@ }, { "argumentTypes": null, - "id": 2659, + "id": 2690, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2603, + "referencedDeclaration": 2634, "src": "14012:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -23415,32 +23415,32 @@ ], "expression": { "argumentTypes": null, - "id": 2655, + "id": 2686, "name": "_tokenOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1911, + "referencedDeclaration": 1942, "src": "13986:12:11", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage", "typeString": "struct EnumerableMap.UintToAddressMap storage ref" } }, - "id": 2657, + "id": 2688, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "set", "nodeType": "MemberAccess", - "referencedDeclaration": 3579, + "referencedDeclaration": 3610, "src": "13986:16:11", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$3550_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$3550_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$3581_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$3581_storage_ptr_$", "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" } }, - "id": 2660, + "id": 2691, "isConstant": false, "isLValue": false, "isPure": false, @@ -23455,7 +23455,7 @@ "typeString": "bool" } }, - "id": 2661, + "id": 2692, "nodeType": "ExpressionStatement", "src": "13986:29:11" }, @@ -23465,11 +23465,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2663, + "id": 2694, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2601, + "referencedDeclaration": 2632, "src": "14040:4:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -23478,11 +23478,11 @@ }, { "argumentTypes": null, - "id": 2664, + "id": 2695, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2603, + "referencedDeclaration": 2634, "src": "14046:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -23491,11 +23491,11 @@ }, { "argumentTypes": null, - "id": 2665, + "id": 2696, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2605, + "referencedDeclaration": 2636, "src": "14050:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -23518,18 +23518,18 @@ "typeString": "uint256" } ], - "id": 2662, + "id": 2693, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2839, + "referencedDeclaration": 2870, "src": "14031:8:11", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2666, + "id": 2697, "isConstant": false, "isLValue": false, "isPure": false, @@ -23544,19 +23544,19 @@ "typeString": "tuple()" } }, - "id": 2667, + "id": 2698, "nodeType": "EmitStatement", "src": "14026:32:11" } ] }, "documentation": { - "id": 2599, + "id": 2630, "nodeType": "StructuredDocumentation", "src": "13188:313:11", "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." }, - "id": 2669, + "id": 2700, "implemented": true, "kind": "function", "modifiers": [], @@ -23564,17 +23564,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2606, + "id": 2637, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2601, + "id": 2632, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2669, + "scope": 2700, "src": "13525:12:11", "stateVariable": false, "storageLocation": "default", @@ -23583,7 +23583,7 @@ "typeString": "address" }, "typeName": { - "id": 2600, + "id": 2631, "name": "address", "nodeType": "ElementaryTypeName", "src": "13525:7:11", @@ -23598,12 +23598,12 @@ }, { "constant": false, - "id": 2603, + "id": 2634, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2669, + "scope": 2700, "src": "13539:10:11", "stateVariable": false, "storageLocation": "default", @@ -23612,7 +23612,7 @@ "typeString": "address" }, "typeName": { - "id": 2602, + "id": 2633, "name": "address", "nodeType": "ElementaryTypeName", "src": "13539:7:11", @@ -23627,12 +23627,12 @@ }, { "constant": false, - "id": 2605, + "id": 2636, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2669, + "scope": 2700, "src": "13551:15:11", "stateVariable": false, "storageLocation": "default", @@ -23641,7 +23641,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2604, + "id": 2635, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "13551:7:11", @@ -23657,12 +23657,12 @@ "src": "13524:43:11" }, "returnParameters": { - "id": 2607, + "id": 2638, "nodeType": "ParameterList", "parameters": [], "src": "13585:0:11" }, - "scope": 2794, + "scope": 2825, "src": "13506:559:11", "stateMutability": "nonpayable", "virtual": true, @@ -23670,7 +23670,7 @@ }, { "body": { - "id": 2690, + "id": 2721, "nodeType": "Block", "src": "14293:131:11", "statements": [ @@ -23683,11 +23683,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2679, + "id": 2710, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2672, + "referencedDeclaration": 2703, "src": "14319:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -23702,18 +23702,18 @@ "typeString": "uint256" } ], - "id": 2678, + "id": 2709, "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2387, + "referencedDeclaration": 2418, "src": "14311:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 2680, + "id": 2711, "isConstant": false, "isLValue": false, "isPure": false, @@ -23731,7 +23731,7 @@ { "argumentTypes": null, "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 2681, + "id": 2712, "isConstant": false, "isLValue": false, "isPure": true, @@ -23758,7 +23758,7 @@ "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" } ], - "id": 2677, + "id": 2708, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -23772,7 +23772,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2682, + "id": 2713, "isConstant": false, "isLValue": false, "isPure": false, @@ -23787,14 +23787,14 @@ "typeString": "tuple()" } }, - "id": 2683, + "id": 2714, "nodeType": "ExpressionStatement", "src": "14303:73:11" }, { "expression": { "argumentTypes": null, - "id": 2688, + "id": 2719, "isConstant": false, "isLValue": false, "isPure": false, @@ -23803,25 +23803,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2684, + "id": 2715, "name": "_tokenURIs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1929, + "referencedDeclaration": 1960, "src": "14386:10:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", "typeString": "mapping(uint256 => string storage ref)" } }, - "id": 2686, + "id": 2717, "indexExpression": { "argumentTypes": null, - "id": 2685, + "id": 2716, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2672, + "referencedDeclaration": 2703, "src": "14397:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -23843,11 +23843,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2687, + "id": 2718, "name": "_tokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2674, + "referencedDeclaration": 2705, "src": "14408:9:11", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -23860,19 +23860,19 @@ "typeString": "string storage ref" } }, - "id": 2689, + "id": 2720, "nodeType": "ExpressionStatement", "src": "14386:31:11" } ] }, "documentation": { - "id": 2670, + "id": 2701, "nodeType": "StructuredDocumentation", "src": "14071:136:11", "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." }, - "id": 2691, + "id": 2722, "implemented": true, "kind": "function", "modifiers": [], @@ -23880,17 +23880,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2675, + "id": 2706, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2672, + "id": 2703, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2691, + "scope": 2722, "src": "14234:15:11", "stateVariable": false, "storageLocation": "default", @@ -23899,7 +23899,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2671, + "id": 2702, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "14234:7:11", @@ -23913,12 +23913,12 @@ }, { "constant": false, - "id": 2674, + "id": 2705, "mutability": "mutable", "name": "_tokenURI", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2691, + "scope": 2722, "src": "14251:23:11", "stateVariable": false, "storageLocation": "memory", @@ -23927,7 +23927,7 @@ "typeString": "string" }, "typeName": { - "id": 2673, + "id": 2704, "name": "string", "nodeType": "ElementaryTypeName", "src": "14251:6:11", @@ -23943,12 +23943,12 @@ "src": "14233:42:11" }, "returnParameters": { - "id": 2676, + "id": 2707, "nodeType": "ParameterList", "parameters": [], "src": "14293:0:11" }, - "scope": 2794, + "scope": 2825, "src": "14212:212:11", "stateMutability": "nonpayable", "virtual": true, @@ -23956,25 +23956,25 @@ }, { "body": { - "id": 2701, + "id": 2732, "nodeType": "Block", "src": "14709:36:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 2699, + "id": 2730, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2697, + "id": 2728, "name": "_baseURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1931, + "referencedDeclaration": 1962, "src": "14719:8:11", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -23985,11 +23985,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2698, + "id": 2729, "name": "baseURI_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2694, + "referencedDeclaration": 2725, "src": "14730:8:11", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -24002,19 +24002,19 @@ "typeString": "string storage ref" } }, - "id": 2700, + "id": 2731, "nodeType": "ExpressionStatement", "src": "14719:19:11" } ] }, "documentation": { - "id": 2692, + "id": 2723, "nodeType": "StructuredDocumentation", "src": "14430:212:11", "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." }, - "id": 2702, + "id": 2733, "implemented": true, "kind": "function", "modifiers": [], @@ -24022,17 +24022,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2695, + "id": 2726, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2694, + "id": 2725, "mutability": "mutable", "name": "baseURI_", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2702, + "scope": 2733, "src": "14668:22:11", "stateVariable": false, "storageLocation": "memory", @@ -24041,7 +24041,7 @@ "typeString": "string" }, "typeName": { - "id": 2693, + "id": 2724, "name": "string", "nodeType": "ElementaryTypeName", "src": "14668:6:11", @@ -24057,12 +24057,12 @@ "src": "14667:24:11" }, "returnParameters": { - "id": 2696, + "id": 2727, "nodeType": "ParameterList", "parameters": [], "src": "14709:0:11" }, - "scope": 2794, + "scope": 2825, "src": "14647:98:11", "stateMutability": "nonpayable", "virtual": true, @@ -24070,14 +24070,14 @@ }, { "body": { - "id": 2759, + "id": 2790, "nodeType": "Block", "src": "15428:459:11", "statements": [ { "condition": { "argumentTypes": null, - "id": 2719, + "id": 2750, "isConstant": false, "isLValue": false, "isPure": false, @@ -24093,32 +24093,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 2716, + "id": 2747, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2707, + "referencedDeclaration": 2738, "src": "15443:2:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2717, + "id": 2748, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isContract", "nodeType": "MemberAccess", - "referencedDeclaration": 3045, + "referencedDeclaration": 3076, "src": "15443:13:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", "typeString": "function (address) view returns (bool)" } }, - "id": 2718, + "id": 2749, "isConstant": false, "isLValue": false, "isPure": false, @@ -24139,11 +24139,11 @@ } }, "falseBody": null, - "id": 2723, + "id": 2754, "nodeType": "IfStatement", "src": "15438:58:11", "trueBody": { - "id": 2722, + "id": 2753, "nodeType": "Block", "src": "15460:36:11", "statements": [ @@ -24151,7 +24151,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2720, + "id": 2751, "isConstant": false, "isLValue": false, "isPure": true, @@ -24166,8 +24166,8 @@ }, "value": "true" }, - "functionReturnParameters": 2715, - "id": 2721, + "functionReturnParameters": 2746, + "id": 2752, "nodeType": "Return", "src": "15474:11:11" } @@ -24176,17 +24176,17 @@ }, { "assignments": [ - 2725 + 2756 ], "declarations": [ { "constant": false, - "id": 2725, + "id": 2756, "mutability": "mutable", "name": "returndata", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2759, + "scope": 2790, "src": "15505:23:11", "stateVariable": false, "storageLocation": "memory", @@ -24195,7 +24195,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2724, + "id": 2755, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "15505:5:11", @@ -24208,7 +24208,7 @@ "visibility": "internal" } ], - "id": 2743, + "id": 2774, "initialValue": { "argumentTypes": null, "arguments": [ @@ -24224,11 +24224,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2731, + "id": 2762, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2707, + "referencedDeclaration": 2738, "src": "15599:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24243,18 +24243,18 @@ "typeString": "address" } ], - "id": 2730, + "id": 2761, "name": "IERC721Receiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3016, + "referencedDeclaration": 3047, "src": "15583:15:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$3016_$", + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$3047_$", "typeString": "type(contract IERC721Receiver)" } }, - "id": 2732, + "id": 2763, "isConstant": false, "isLValue": false, "isPure": false, @@ -24265,25 +24265,25 @@ "src": "15583:19:11", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$3016", + "typeIdentifier": "t_contract$_IERC721Receiver_$3047", "typeString": "contract IERC721Receiver" } }, - "id": 2733, + "id": 2764, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "onERC721Received", "nodeType": "MemberAccess", - "referencedDeclaration": 3015, + "referencedDeclaration": 3046, "src": "15583:36:11", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" } }, - "id": 2734, + "id": 2765, "isConstant": false, "isLValue": false, "isPure": false, @@ -24302,18 +24302,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2735, + "id": 2766, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "15642:10:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 2736, + "id": 2767, "isConstant": false, "isLValue": false, "isPure": false, @@ -24330,11 +24330,11 @@ }, { "argumentTypes": null, - "id": 2737, + "id": 2768, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2705, + "referencedDeclaration": 2736, "src": "15668:4:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24343,11 +24343,11 @@ }, { "argumentTypes": null, - "id": 2738, + "id": 2769, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2709, + "referencedDeclaration": 2740, "src": "15686:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -24356,11 +24356,11 @@ }, { "argumentTypes": null, - "id": 2739, + "id": 2770, "name": "_data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2711, + "referencedDeclaration": 2742, "src": "15707:5:11", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -24393,7 +24393,7 @@ ], "expression": { "argumentTypes": null, - "id": 2728, + "id": 2759, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -24404,7 +24404,7 @@ "typeString": "abi" } }, - "id": 2729, + "id": 2760, "isConstant": false, "isLValue": false, "isPure": true, @@ -24418,7 +24418,7 @@ "typeString": "function (bytes4) pure returns (bytes memory)" } }, - "id": 2740, + "id": 2771, "isConstant": false, "isLValue": false, "isPure": false, @@ -24436,7 +24436,7 @@ { "argumentTypes": null, "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 2741, + "id": 2772, "isConstant": false, "isLValue": false, "isPure": true, @@ -24465,32 +24465,32 @@ ], "expression": { "argumentTypes": null, - "id": 2726, + "id": 2757, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2707, + "referencedDeclaration": 2738, "src": "15531:2:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2727, + "id": 2758, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "functionCall", "nodeType": "MemberAccess", - "referencedDeclaration": 3116, + "referencedDeclaration": 3147, "src": "15531:15:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" } }, - "id": 2742, + "id": 2773, "isConstant": false, "isLValue": false, "isPure": false, @@ -24510,17 +24510,17 @@ }, { "assignments": [ - 2745 + 2776 ], "declarations": [ { "constant": false, - "id": 2745, + "id": 2776, "mutability": "mutable", "name": "retval", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2759, + "scope": 2790, "src": "15787:13:11", "stateVariable": false, "storageLocation": "default", @@ -24529,7 +24529,7 @@ "typeString": "bytes4" }, "typeName": { - "id": 2744, + "id": 2775, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "15787:6:11", @@ -24542,17 +24542,17 @@ "visibility": "internal" } ], - "id": 2753, + "id": 2784, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2748, + "id": 2779, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2725, + "referencedDeclaration": 2756, "src": "15814:10:11", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -24564,7 +24564,7 @@ "components": [ { "argumentTypes": null, - "id": 2750, + "id": 2781, "isConstant": false, "isLValue": false, "isPure": true, @@ -24576,7 +24576,7 @@ "typeString": "type(bytes4)" }, "typeName": { - "id": 2749, + "id": 2780, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "15827:6:11", @@ -24587,7 +24587,7 @@ } } ], - "id": 2751, + "id": 2782, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -24614,7 +24614,7 @@ ], "expression": { "argumentTypes": null, - "id": 2746, + "id": 2777, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -24625,7 +24625,7 @@ "typeString": "abi" } }, - "id": 2747, + "id": 2778, "isConstant": false, "isLValue": false, "isPure": true, @@ -24639,7 +24639,7 @@ "typeString": "function () pure" } }, - "id": 2752, + "id": 2783, "isConstant": false, "isLValue": false, "isPure": false, @@ -24667,18 +24667,18 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 2756, + "id": 2787, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2754, + "id": 2785, "name": "retval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2745, + "referencedDeclaration": 2776, "src": "15853:6:11", "typeDescriptions": { "typeIdentifier": "t_bytes4", @@ -24689,11 +24689,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2755, + "id": 2786, "name": "_ERC721_RECEIVED", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1905, + "referencedDeclaration": 1936, "src": "15863:16:11", "typeDescriptions": { "typeIdentifier": "t_bytes4", @@ -24707,7 +24707,7 @@ } } ], - "id": 2757, + "id": 2788, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -24720,20 +24720,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 2715, - "id": 2758, + "functionReturnParameters": 2746, + "id": 2789, "nodeType": "Return", "src": "15845:35:11" } ] }, "documentation": { - "id": 2703, + "id": 2734, "nodeType": "StructuredDocumentation", "src": "14751:542:11", "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" }, - "id": 2760, + "id": 2791, "implemented": true, "kind": "function", "modifiers": [], @@ -24741,17 +24741,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2712, + "id": 2743, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2705, + "id": 2736, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2760, + "scope": 2791, "src": "15330:12:11", "stateVariable": false, "storageLocation": "default", @@ -24760,7 +24760,7 @@ "typeString": "address" }, "typeName": { - "id": 2704, + "id": 2735, "name": "address", "nodeType": "ElementaryTypeName", "src": "15330:7:11", @@ -24775,12 +24775,12 @@ }, { "constant": false, - "id": 2707, + "id": 2738, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2760, + "scope": 2791, "src": "15344:10:11", "stateVariable": false, "storageLocation": "default", @@ -24789,7 +24789,7 @@ "typeString": "address" }, "typeName": { - "id": 2706, + "id": 2737, "name": "address", "nodeType": "ElementaryTypeName", "src": "15344:7:11", @@ -24804,12 +24804,12 @@ }, { "constant": false, - "id": 2709, + "id": 2740, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2760, + "scope": 2791, "src": "15356:15:11", "stateVariable": false, "storageLocation": "default", @@ -24818,7 +24818,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2708, + "id": 2739, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "15356:7:11", @@ -24832,12 +24832,12 @@ }, { "constant": false, - "id": 2711, + "id": 2742, "mutability": "mutable", "name": "_data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2760, + "scope": 2791, "src": "15373:18:11", "stateVariable": false, "storageLocation": "memory", @@ -24846,7 +24846,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2710, + "id": 2741, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "15373:5:11", @@ -24862,17 +24862,17 @@ "src": "15329:63:11" }, "returnParameters": { - "id": 2715, + "id": 2746, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2714, + "id": 2745, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2760, + "scope": 2791, "src": "15418:4:11", "stateVariable": false, "storageLocation": "default", @@ -24881,7 +24881,7 @@ "typeString": "bool" }, "typeName": { - "id": 2713, + "id": 2744, "name": "bool", "nodeType": "ElementaryTypeName", "src": "15418:4:11", @@ -24896,7 +24896,7 @@ ], "src": "15417:6:11" }, - "scope": 2794, + "scope": 2825, "src": "15298:589:11", "stateMutability": "nonpayable", "virtual": false, @@ -24904,14 +24904,14 @@ }, { "body": { - "id": 2781, + "id": 2812, "nodeType": "Block", "src": "15948:100:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 2771, + "id": 2802, "isConstant": false, "isLValue": false, "isPure": false, @@ -24920,25 +24920,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2767, + "id": 2798, "name": "_tokenApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1915, + "referencedDeclaration": 1946, "src": "15958:15:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, - "id": 2769, + "id": 2800, "indexExpression": { "argumentTypes": null, - "id": 2768, + "id": 2799, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2764, + "referencedDeclaration": 2795, "src": "15974:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -24960,11 +24960,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2770, + "id": 2801, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2762, + "referencedDeclaration": 2793, "src": "15985:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24977,7 +24977,7 @@ "typeString": "address" } }, - "id": 2772, + "id": 2803, "nodeType": "ExpressionStatement", "src": "15958:29:11" }, @@ -24990,11 +24990,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2775, + "id": 2806, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2764, + "referencedDeclaration": 2795, "src": "16019:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -25009,18 +25009,18 @@ "typeString": "uint256" } ], - "id": 2774, + "id": 2805, "name": "ownerOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2011, + "referencedDeclaration": 2042, "src": "16011:7:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, - "id": 2776, + "id": 2807, "isConstant": false, "isLValue": false, "isPure": false, @@ -25037,11 +25037,11 @@ }, { "argumentTypes": null, - "id": 2777, + "id": 2808, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2762, + "referencedDeclaration": 2793, "src": "16029:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -25050,11 +25050,11 @@ }, { "argumentTypes": null, - "id": 2778, + "id": 2809, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2764, + "referencedDeclaration": 2795, "src": "16033:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -25077,18 +25077,18 @@ "typeString": "uint256" } ], - "id": 2773, + "id": 2804, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2848, + "referencedDeclaration": 2879, "src": "16002:8:11", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2779, + "id": 2810, "isConstant": false, "isLValue": false, "isPure": false, @@ -25103,14 +25103,14 @@ "typeString": "tuple()" } }, - "id": 2780, + "id": 2811, "nodeType": "EmitStatement", "src": "15997:44:11" } ] }, "documentation": null, - "id": 2782, + "id": 2813, "implemented": true, "kind": "function", "modifiers": [], @@ -25118,17 +25118,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2765, + "id": 2796, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2762, + "id": 2793, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2782, + "scope": 2813, "src": "15911:10:11", "stateVariable": false, "storageLocation": "default", @@ -25137,7 +25137,7 @@ "typeString": "address" }, "typeName": { - "id": 2761, + "id": 2792, "name": "address", "nodeType": "ElementaryTypeName", "src": "15911:7:11", @@ -25152,12 +25152,12 @@ }, { "constant": false, - "id": 2764, + "id": 2795, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2782, + "scope": 2813, "src": "15923:15:11", "stateVariable": false, "storageLocation": "default", @@ -25166,7 +25166,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2763, + "id": 2794, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "15923:7:11", @@ -25182,12 +25182,12 @@ "src": "15910:29:11" }, "returnParameters": { - "id": 2766, + "id": 2797, "nodeType": "ParameterList", "parameters": [], "src": "15948:0:11" }, - "scope": 2794, + "scope": 2825, "src": "15893:155:11", "stateMutability": "nonpayable", "virtual": false, @@ -25195,18 +25195,18 @@ }, { "body": { - "id": 2792, + "id": 2823, "nodeType": "Block", "src": "16734:3:11", "statements": [] }, "documentation": { - "id": 2783, + "id": 2814, "nodeType": "StructuredDocumentation", "src": "16054:585:11", "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." }, - "id": 2793, + "id": 2824, "implemented": true, "kind": "function", "modifiers": [], @@ -25214,17 +25214,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2790, + "id": 2821, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2785, + "id": 2816, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2793, + "scope": 2824, "src": "16674:12:11", "stateVariable": false, "storageLocation": "default", @@ -25233,7 +25233,7 @@ "typeString": "address" }, "typeName": { - "id": 2784, + "id": 2815, "name": "address", "nodeType": "ElementaryTypeName", "src": "16674:7:11", @@ -25248,12 +25248,12 @@ }, { "constant": false, - "id": 2787, + "id": 2818, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2793, + "scope": 2824, "src": "16688:10:11", "stateVariable": false, "storageLocation": "default", @@ -25262,7 +25262,7 @@ "typeString": "address" }, "typeName": { - "id": 2786, + "id": 2817, "name": "address", "nodeType": "ElementaryTypeName", "src": "16688:7:11", @@ -25277,12 +25277,12 @@ }, { "constant": false, - "id": 2789, + "id": 2820, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2793, + "scope": 2824, "src": "16700:15:11", "stateVariable": false, "storageLocation": "default", @@ -25291,7 +25291,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2788, + "id": 2819, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "16700:7:11", @@ -25307,19 +25307,19 @@ "src": "16673:43:11" }, "returnParameters": { - "id": 2791, + "id": 2822, "nodeType": "ParameterList", "parameters": [], "src": "16734:0:11" }, - "scope": 2794, + "scope": 2825, "src": "16644:93:11", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" } ], - "scope": 2795, + "scope": 2826, "src": "561:16178:11" } ], @@ -25327,13 +25327,14 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:05.975Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.669Z", "devdoc": { "details": "see https://eips.ethereum.org/EIPS/eip-721", + "kind": "dev", "methods": { "approve(address,uint256)": { "details": "See {IERC721-approve}." @@ -25390,9 +25391,12 @@ "details": "See {IERC721-transferFrom}." } }, - "title": "ERC721 Non-Fungible Token Standard basic implementation" + "title": "ERC721 Non-Fungible Token Standard basic implementation", + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/ERC721Burnable.json b/abi/ERC721Burnable.json index c278080..36847e9 100644 --- a/abi/ERC721Burnable.json +++ b/abi/ERC721Burnable.json @@ -414,7 +414,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC721 Token that can be irreversibly burned (destroyed).\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"baseURI()\":{\"details\":\"Returns the base URI set via {_setBaseURI}. This will be automatically added as a prefix in {tokenURI} to each token's URI, or to the token ID if no specific URI is set for that token ID.\"},\"burn(uint256)\":{\"details\":\"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"title\":\"ERC721 Burnable Token\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721Burnable.sol\":\"ERC721Burnable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0xb046d18f9d09683ca1c0ed6d80c61da8a8a7d9b30bad70a17b898538683eff74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4728713afa6ae36cc9e92c7107c796a313add3ec20f813be2cde76c814486b2a\",\"dweb:/ipfs/QmUJBTXvYaGDF5PVnd5pUvYerc9DRXvqANDzgCzAp3FkkA\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xfa152b6e88a1dc50780e8f1580426dc23ad2e1e2c2f086a088adf206a202f453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5127b264994adab88fae419b1c493efc5acd07134c19ee5c0397e50018291ebf\",\"dweb:/ipfs/QmWwJZVhvdmvUCdimbb6R2Jiu59zjPqm6XTMchM6LaEHAp\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x1071a23188ba7f5bb16f51b0b01a67fd41fe56f862d8f83985788cf46f3b91bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c7082ca99b93f2e541cafaad00ed32675adf0752eab78eccabcf91dec9fd5d73\",\"dweb:/ipfs/QmdqooMmYBQVi7p6subDFM4e1944AuLjZUpHMjGtae7Lgd\"]},\"@openzeppelin/contracts/token/ERC721/ERC721Burnable.sol\":{\"keccak256\":\"0x5181bc84ec1b054bffda75619dd01f2f760d101da24bdba6ca786f6966a35695\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15323e3edc0407ab3859fc4aeca39d12d5e2e21c9ee36cb87a2d4c128ff8ab00\",\"dweb:/ipfs/QmRz9vQa4Xx8X8V38oABZ2H4ALaki39ueyaSaytw5SFj2M\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x227bafd3e165b13f5d98c42a44376e48d41f4a265db8803f2707faaeae9659aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9aa7959a30871669ce46172cd117b084b607d602d9ce695ce79005582b0b69b\",\"dweb:/ipfs/QmXZUWeLXmArQinHL4RnacJLT22GvCExqREYM6pHLX7CX9\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\":{\"keccak256\":\"0x3636662804cd8f474536b2875a9038a4c3fb91879f1bbff48af5c3f140fcd2f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9fab8521263fa581544000cb57335a3f2e6bcdfbb5579d3ceaa5acf741c67c4f\",\"dweb:/ipfs/QmZfXnMom7JSNtfyie5yGPN1SUC4SmHbz4ScVBH88URmA7\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0xe7f984cedc00a138dc27f263c73c32ba9a4b2fd23b6c34ac46f46c074b943538\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f4acda12f076fe7584921241ddbb5b460ca7cad6cb8a42252ac7f2a9f539127\",\"dweb:/ipfs/QmQmfhkEv9GrhdWe67QtXnU19AMuoEmy31QnHPkucdYLjZ\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x321ee37ef4925020aa818a03ec7fe48e057561f65ab009a84f6c20c86026ade7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01f9d74a17a56024984251b97e428e24c9d3abffbae5bd290f0ec263c82e9694\",\"dweb:/ipfs/QmRryCuuXu2ukrDmatB8TqdEhPLiK6NBRt41RiPUaX1qKy\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"@openzeppelin/contracts/utils/EnumerableMap.sol\":{\"keccak256\":\"0x244e4b74b17716120cf28e58636f11c699b8c0c94628bd952a95cee038d7e32b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://198d566157120c526bd6b5086b32cae85a11389b8a538f533ba9f9447915da0e\",\"dweb:/ipfs/QmeE6d8KWERx7f1FVS5tMnitNJxBm2yWXRSEUBF7R6voLh\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x79484115dbfa737054f73e041009a02eeb434dd81be5d684bf4255ad3b5ab558\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12c119699463450c2544f5b9d8709b5e9e9164c62948a79c3ec53423a051d969\",\"dweb:/ipfs/QmPJduzSAaekq447QeFqAp3E7dc8CnNk5ajofckJ4ahA7Q\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC721 Token that can be irreversibly burned (destroyed).\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"baseURI()\":{\"details\":\"Returns the base URI set via {_setBaseURI}. This will be automatically added as a prefix in {tokenURI} to each token's URI, or to the token ID if no specific URI is set for that token ID.\"},\"burn(uint256)\":{\"details\":\"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"title\":\"ERC721 Burnable Token\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721Burnable.sol\":\"ERC721Burnable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0xb046d18f9d09683ca1c0ed6d80c61da8a8a7d9b30bad70a17b898538683eff74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4728713afa6ae36cc9e92c7107c796a313add3ec20f813be2cde76c814486b2a\",\"dweb:/ipfs/QmUJBTXvYaGDF5PVnd5pUvYerc9DRXvqANDzgCzAp3FkkA\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xfa152b6e88a1dc50780e8f1580426dc23ad2e1e2c2f086a088adf206a202f453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5127b264994adab88fae419b1c493efc5acd07134c19ee5c0397e50018291ebf\",\"dweb:/ipfs/QmWwJZVhvdmvUCdimbb6R2Jiu59zjPqm6XTMchM6LaEHAp\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x1071a23188ba7f5bb16f51b0b01a67fd41fe56f862d8f83985788cf46f3b91bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c7082ca99b93f2e541cafaad00ed32675adf0752eab78eccabcf91dec9fd5d73\",\"dweb:/ipfs/QmdqooMmYBQVi7p6subDFM4e1944AuLjZUpHMjGtae7Lgd\"]},\"@openzeppelin/contracts/token/ERC721/ERC721Burnable.sol\":{\"keccak256\":\"0x5181bc84ec1b054bffda75619dd01f2f760d101da24bdba6ca786f6966a35695\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15323e3edc0407ab3859fc4aeca39d12d5e2e21c9ee36cb87a2d4c128ff8ab00\",\"dweb:/ipfs/QmRz9vQa4Xx8X8V38oABZ2H4ALaki39ueyaSaytw5SFj2M\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x227bafd3e165b13f5d98c42a44376e48d41f4a265db8803f2707faaeae9659aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9aa7959a30871669ce46172cd117b084b607d602d9ce695ce79005582b0b69b\",\"dweb:/ipfs/QmXZUWeLXmArQinHL4RnacJLT22GvCExqREYM6pHLX7CX9\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\":{\"keccak256\":\"0x3636662804cd8f474536b2875a9038a4c3fb91879f1bbff48af5c3f140fcd2f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9fab8521263fa581544000cb57335a3f2e6bcdfbb5579d3ceaa5acf741c67c4f\",\"dweb:/ipfs/QmZfXnMom7JSNtfyie5yGPN1SUC4SmHbz4ScVBH88URmA7\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0xe7f984cedc00a138dc27f263c73c32ba9a4b2fd23b6c34ac46f46c074b943538\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f4acda12f076fe7584921241ddbb5b460ca7cad6cb8a42252ac7f2a9f539127\",\"dweb:/ipfs/QmQmfhkEv9GrhdWe67QtXnU19AMuoEmy31QnHPkucdYLjZ\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x321ee37ef4925020aa818a03ec7fe48e057561f65ab009a84f6c20c86026ade7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01f9d74a17a56024984251b97e428e24c9d3abffbae5bd290f0ec263c82e9694\",\"dweb:/ipfs/QmRryCuuXu2ukrDmatB8TqdEhPLiK6NBRt41RiPUaX1qKy\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"@openzeppelin/contracts/utils/EnumerableMap.sol\":{\"keccak256\":\"0x244e4b74b17716120cf28e58636f11c699b8c0c94628bd952a95cee038d7e32b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://198d566157120c526bd6b5086b32cae85a11389b8a538f533ba9f9447915da0e\",\"dweb:/ipfs/QmeE6d8KWERx7f1FVS5tMnitNJxBm2yWXRSEUBF7R6voLh\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x79484115dbfa737054f73e041009a02eeb434dd81be5d684bf4255ad3b5ab558\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12c119699463450c2544f5b9d8709b5e9e9164c62948a79c3ec53423a051d969\",\"dweb:/ipfs/QmPJduzSAaekq447QeFqAp3E7dc8CnNk5ajofckJ4ahA7Q\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, @@ -426,15 +426,15 @@ "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721Burnable.sol", "exportedSymbols": { "ERC721Burnable": [ - 2824 + 2855 ] }, - "id": 2825, + "id": 2856, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2796, + "id": 2827, "literals": [ "solidity", "^", @@ -447,10 +447,10 @@ { "absolutePath": "@openzeppelin/contracts/GSN/Context.sol", "file": "../../GSN/Context.sol", - "id": 2797, + "id": 2828, "nodeType": "ImportDirective", - "scope": 2825, - "sourceUnit": 1136, + "scope": 2856, + "sourceUnit": 1167, "src": "58:31:12", "symbolAliases": [], "unitAlias": "" @@ -458,10 +458,10 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol", "file": "./ERC721.sol", - "id": 2798, + "id": 2829, "nodeType": "ImportDirective", - "scope": 2825, - "sourceUnit": 2795, + "scope": 2856, + "sourceUnit": 2826, "src": "90:22:12", "symbolAliases": [], "unitAlias": "" @@ -473,17 +473,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2800, + "id": 2831, "name": "Context", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1135, + "referencedDeclaration": 1166, "src": "256:7:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$1135", + "typeIdentifier": "t_contract$_Context_$1166", "typeString": "contract Context" } }, - "id": 2801, + "id": 2832, "nodeType": "InheritanceSpecifier", "src": "256:7:12" }, @@ -491,55 +491,55 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2802, + "id": 2833, "name": "ERC721", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2794, + "referencedDeclaration": 2825, "src": "265:6:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$2794", + "typeIdentifier": "t_contract$_ERC721_$2825", "typeString": "contract ERC721" } }, - "id": 2803, + "id": 2834, "nodeType": "InheritanceSpecifier", "src": "265:6:12" } ], "contractDependencies": [ - 1135, - 1655, - 1667, - 2794, - 2940, + 1166, + 1686, + 1698, + 2825, 2971, - 2998 + 3002, + 3029 ], "contractKind": "contract", "documentation": { - "id": 2799, + "id": 2830, "nodeType": "StructuredDocumentation", "src": "114:105:12", "text": " @title ERC721 Burnable Token\n @dev ERC721 Token that can be irreversibly burned (destroyed)." }, "fullyImplemented": false, - "id": 2824, + "id": 2855, "linearizedBaseContracts": [ - 2824, - 2794, + 2855, + 2825, + 3002, + 3029, 2971, - 2998, - 2940, - 1655, - 1667, - 1135 + 1686, + 1698, + 1166 ], "name": "ERC721Burnable", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2822, + "id": 2853, "nodeType": "Block", "src": "491:195:12", "statements": [ @@ -555,18 +555,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2811, + "id": 2842, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "580:10:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 2812, + "id": 2843, "isConstant": false, "isLValue": false, "isPure": false, @@ -583,11 +583,11 @@ }, { "argumentTypes": null, - "id": 2813, + "id": 2844, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2806, + "referencedDeclaration": 2837, "src": "594:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -606,18 +606,18 @@ "typeString": "uint256" } ], - "id": 2810, + "id": 2841, "name": "_isApprovedOrOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2427, + "referencedDeclaration": 2458, "src": "561:18:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) view returns (bool)" } }, - "id": 2814, + "id": 2845, "isConstant": false, "isLValue": false, "isPure": false, @@ -635,7 +635,7 @@ { "argumentTypes": null, "hexValue": "4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 2815, + "id": 2846, "isConstant": false, "isLValue": false, "isPure": true, @@ -662,7 +662,7 @@ "typeString": "literal_string \"ERC721Burnable: caller is not owner nor approved\"" } ], - "id": 2809, + "id": 2840, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -676,7 +676,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2816, + "id": 2847, "isConstant": false, "isLValue": false, "isPure": false, @@ -691,7 +691,7 @@ "typeString": "tuple()" } }, - "id": 2817, + "id": 2848, "nodeType": "ExpressionStatement", "src": "553:102:12" }, @@ -701,11 +701,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2819, + "id": 2850, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2806, + "referencedDeclaration": 2837, "src": "671:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -720,18 +720,18 @@ "typeString": "uint256" } ], - "id": 2818, + "id": 2849, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2598, + "referencedDeclaration": 2629, "src": "665:5:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 2820, + "id": 2851, "isConstant": false, "isLValue": false, "isPure": false, @@ -746,20 +746,20 @@ "typeString": "tuple()" } }, - "id": 2821, + "id": 2852, "nodeType": "ExpressionStatement", "src": "665:14:12" } ] }, "documentation": { - "id": 2804, + "id": 2835, "nodeType": "StructuredDocumentation", "src": "278:162:12", "text": " @dev Burns `tokenId`. See {ERC721-_burn}.\n Requirements:\n - The caller must own `tokenId` or be an approved operator." }, "functionSelector": "42966c68", - "id": 2823, + "id": 2854, "implemented": true, "kind": "function", "modifiers": [], @@ -767,17 +767,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2807, + "id": 2838, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2806, + "id": 2837, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2823, + "scope": 2854, "src": "459:15:12", "stateVariable": false, "storageLocation": "default", @@ -786,7 +786,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2805, + "id": 2836, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "459:7:12", @@ -802,19 +802,19 @@ "src": "458:17:12" }, "returnParameters": { - "id": 2808, + "id": 2839, "nodeType": "ParameterList", "parameters": [], "src": "491:0:12" }, - "scope": 2824, + "scope": 2855, "src": "445:241:12", "stateMutability": "nonpayable", "virtual": true, "visibility": "public" } ], - "scope": 2825, + "scope": 2856, "src": "220:468:12" } ], @@ -824,15 +824,15 @@ "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721Burnable.sol", "exportedSymbols": { "ERC721Burnable": [ - 2824 + 2855 ] }, - "id": 2825, + "id": 2856, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2796, + "id": 2827, "literals": [ "solidity", "^", @@ -845,10 +845,10 @@ { "absolutePath": "@openzeppelin/contracts/GSN/Context.sol", "file": "../../GSN/Context.sol", - "id": 2797, + "id": 2828, "nodeType": "ImportDirective", - "scope": 2825, - "sourceUnit": 1136, + "scope": 2856, + "sourceUnit": 1167, "src": "58:31:12", "symbolAliases": [], "unitAlias": "" @@ -856,10 +856,10 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol", "file": "./ERC721.sol", - "id": 2798, + "id": 2829, "nodeType": "ImportDirective", - "scope": 2825, - "sourceUnit": 2795, + "scope": 2856, + "sourceUnit": 2826, "src": "90:22:12", "symbolAliases": [], "unitAlias": "" @@ -871,17 +871,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2800, + "id": 2831, "name": "Context", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1135, + "referencedDeclaration": 1166, "src": "256:7:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$1135", + "typeIdentifier": "t_contract$_Context_$1166", "typeString": "contract Context" } }, - "id": 2801, + "id": 2832, "nodeType": "InheritanceSpecifier", "src": "256:7:12" }, @@ -889,55 +889,55 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2802, + "id": 2833, "name": "ERC721", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2794, + "referencedDeclaration": 2825, "src": "265:6:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$2794", + "typeIdentifier": "t_contract$_ERC721_$2825", "typeString": "contract ERC721" } }, - "id": 2803, + "id": 2834, "nodeType": "InheritanceSpecifier", "src": "265:6:12" } ], "contractDependencies": [ - 1135, - 1655, - 1667, - 2794, - 2940, + 1166, + 1686, + 1698, + 2825, 2971, - 2998 + 3002, + 3029 ], "contractKind": "contract", "documentation": { - "id": 2799, + "id": 2830, "nodeType": "StructuredDocumentation", "src": "114:105:12", "text": " @title ERC721 Burnable Token\n @dev ERC721 Token that can be irreversibly burned (destroyed)." }, "fullyImplemented": false, - "id": 2824, + "id": 2855, "linearizedBaseContracts": [ - 2824, - 2794, + 2855, + 2825, + 3002, + 3029, 2971, - 2998, - 2940, - 1655, - 1667, - 1135 + 1686, + 1698, + 1166 ], "name": "ERC721Burnable", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2822, + "id": 2853, "nodeType": "Block", "src": "491:195:12", "statements": [ @@ -953,18 +953,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2811, + "id": 2842, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "580:10:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 2812, + "id": 2843, "isConstant": false, "isLValue": false, "isPure": false, @@ -981,11 +981,11 @@ }, { "argumentTypes": null, - "id": 2813, + "id": 2844, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2806, + "referencedDeclaration": 2837, "src": "594:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1004,18 +1004,18 @@ "typeString": "uint256" } ], - "id": 2810, + "id": 2841, "name": "_isApprovedOrOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2427, + "referencedDeclaration": 2458, "src": "561:18:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) view returns (bool)" } }, - "id": 2814, + "id": 2845, "isConstant": false, "isLValue": false, "isPure": false, @@ -1033,7 +1033,7 @@ { "argumentTypes": null, "hexValue": "4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 2815, + "id": 2846, "isConstant": false, "isLValue": false, "isPure": true, @@ -1060,7 +1060,7 @@ "typeString": "literal_string \"ERC721Burnable: caller is not owner nor approved\"" } ], - "id": 2809, + "id": 2840, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1074,7 +1074,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 2816, + "id": 2847, "isConstant": false, "isLValue": false, "isPure": false, @@ -1089,7 +1089,7 @@ "typeString": "tuple()" } }, - "id": 2817, + "id": 2848, "nodeType": "ExpressionStatement", "src": "553:102:12" }, @@ -1099,11 +1099,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2819, + "id": 2850, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2806, + "referencedDeclaration": 2837, "src": "671:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1118,18 +1118,18 @@ "typeString": "uint256" } ], - "id": 2818, + "id": 2849, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2598, + "referencedDeclaration": 2629, "src": "665:5:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 2820, + "id": 2851, "isConstant": false, "isLValue": false, "isPure": false, @@ -1144,20 +1144,20 @@ "typeString": "tuple()" } }, - "id": 2821, + "id": 2852, "nodeType": "ExpressionStatement", "src": "665:14:12" } ] }, "documentation": { - "id": 2804, + "id": 2835, "nodeType": "StructuredDocumentation", "src": "278:162:12", "text": " @dev Burns `tokenId`. See {ERC721-_burn}.\n Requirements:\n - The caller must own `tokenId` or be an approved operator." }, "functionSelector": "42966c68", - "id": 2823, + "id": 2854, "implemented": true, "kind": "function", "modifiers": [], @@ -1165,17 +1165,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2807, + "id": 2838, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2806, + "id": 2837, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2823, + "scope": 2854, "src": "459:15:12", "stateVariable": false, "storageLocation": "default", @@ -1184,7 +1184,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2805, + "id": 2836, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "459:7:12", @@ -1200,19 +1200,19 @@ "src": "458:17:12" }, "returnParameters": { - "id": 2808, + "id": 2839, "nodeType": "ParameterList", "parameters": [], "src": "491:0:12" }, - "scope": 2824, + "scope": 2855, "src": "445:241:12", "stateMutability": "nonpayable", "virtual": true, "visibility": "public" } ], - "scope": 2825, + "scope": 2856, "src": "220:468:12" } ], @@ -1220,13 +1220,14 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:05.994Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.707Z", "devdoc": { "details": "ERC721 Token that can be irreversibly burned (destroyed).", + "kind": "dev", "methods": { "approve(address,uint256)": { "details": "See {IERC721-approve}." @@ -1283,9 +1284,12 @@ "details": "See {IERC721-transferFrom}." } }, - "title": "ERC721 Burnable Token" + "title": "ERC721 Burnable Token", + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/EnumerableMap.json b/abi/EnumerableMap.json index e05358b..026c517 100644 --- a/abi/EnumerableMap.json +++ b/abi/EnumerableMap.json @@ -1,9 +1,9 @@ { "contractName": "EnumerableMap", "abi": [], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing an enumerable variant of Solidity's https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`] type. Maps have the following properties: - Entries are added, removed, and checked for existence in constant time (O(1)). - Entries are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example { // Add the library methods using EnumerableMap for EnumerableMap.UintToAddressMap; // Declare a set state variable EnumerableMap.UintToAddressMap private myMap; } ``` As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are supported.\",\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/EnumerableMap.sol\":\"EnumerableMap\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/EnumerableMap.sol\":{\"keccak256\":\"0x244e4b74b17716120cf28e58636f11c699b8c0c94628bd952a95cee038d7e32b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://198d566157120c526bd6b5086b32cae85a11389b8a538f533ba9f9447915da0e\",\"dweb:/ipfs/QmeE6d8KWERx7f1FVS5tMnitNJxBm2yWXRSEUBF7R6voLh\"]}},\"version\":1}", - "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122063e8eae601fbcbe82ae52e5a6a70f50d53127486d3fa15aa704bd6b6ea00fb8e64736f6c634300060a0033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122063e8eae601fbcbe82ae52e5a6a70f50d53127486d3fa15aa704bd6b6ea00fb8e64736f6c634300060a0033", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing an enumerable variant of Solidity's https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`] type. Maps have the following properties: - Entries are added, removed, and checked for existence in constant time (O(1)). - Entries are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example { // Add the library methods using EnumerableMap for EnumerableMap.UintToAddressMap; // Declare a set state variable EnumerableMap.UintToAddressMap private myMap; } ``` As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are supported.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/EnumerableMap.sol\":\"EnumerableMap\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/EnumerableMap.sol\":{\"keccak256\":\"0x244e4b74b17716120cf28e58636f11c699b8c0c94628bd952a95cee038d7e32b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://198d566157120c526bd6b5086b32cae85a11389b8a538f533ba9f9447915da0e\",\"dweb:/ipfs/QmeE6d8KWERx7f1FVS5tMnitNJxBm2yWXRSEUBF7R6voLh\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220420b9c1b080f6ffbea11e23bcd5a85a55d2a6e5262cc93b4c97ecff89746656d64736f6c634300060b0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220420b9c1b080f6ffbea11e23bcd5a85a55d2a6e5262cc93b4c97ecff89746656d64736f6c634300060b0033", "immutableReferences": {}, "sourceMap": "764:7555:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", "deployedSourceMap": "764:7555:19:-:0;;;;;;;;", @@ -13,15 +13,15 @@ "absolutePath": "@openzeppelin/contracts/utils/EnumerableMap.sol", "exportedSymbols": { "EnumerableMap": [ - 3725 + 3756 ] }, - "id": 3726, + "id": 3757, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 3272, + "id": 3303, "literals": [ "solidity", "^", @@ -37,31 +37,31 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 3273, + "id": 3304, "nodeType": "StructuredDocumentation", "src": "58:705:19", "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." }, "fullyImplemented": true, - "id": 3725, + "id": 3756, "linearizedBaseContracts": [ - 3725 + 3756 ], "name": "EnumerableMap", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "EnumerableMap.MapEntry", - "id": 3278, + "id": 3309, "members": [ { "constant": false, - "id": 3275, + "id": 3306, "mutability": "mutable", "name": "_key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3278, + "scope": 3309, "src": "1276:12:19", "stateVariable": false, "storageLocation": "default", @@ -70,7 +70,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3274, + "id": 3305, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1276:7:19", @@ -84,12 +84,12 @@ }, { "constant": false, - "id": 3277, + "id": 3308, "mutability": "mutable", "name": "_value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3278, + "scope": 3309, "src": "1298:14:19", "stateVariable": false, "storageLocation": "default", @@ -98,7 +98,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3276, + "id": 3307, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1298:7:19", @@ -113,48 +113,48 @@ ], "name": "MapEntry", "nodeType": "StructDefinition", - "scope": 3725, + "scope": 3756, "src": "1250:69:19", "visibility": "public" }, { "canonicalName": "EnumerableMap.Map", - "id": 3286, + "id": 3317, "members": [ { "constant": false, - "id": 3281, + "id": 3312, "mutability": "mutable", "name": "_entries", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3286, + "scope": 3317, "src": "1388:19:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage_ptr", "typeString": "struct EnumerableMap.MapEntry[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 3279, + "id": 3310, "name": "MapEntry", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3278, + "referencedDeclaration": 3309, "src": "1388:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage_ptr", "typeString": "struct EnumerableMap.MapEntry" } }, - "id": 3280, + "id": 3311, "length": null, "nodeType": "ArrayTypeName", "src": "1388:10:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage_ptr", "typeString": "struct EnumerableMap.MapEntry[]" } }, @@ -163,12 +163,12 @@ }, { "constant": false, - "id": 3285, + "id": 3316, "mutability": "mutable", "name": "_indexes", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3286, + "scope": 3317, "src": "1557:37:19", "stateVariable": false, "storageLocation": "default", @@ -177,9 +177,9 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 3284, + "id": 3315, "keyType": { - "id": 3282, + "id": 3313, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1566:7:19", @@ -195,7 +195,7 @@ "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 3283, + "id": 3314, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1577:7:19", @@ -211,29 +211,29 @@ ], "name": "Map", "nodeType": "StructDefinition", - "scope": 3725, + "scope": 3756, "src": "1325:276:19", "visibility": "public" }, { "body": { - "id": 3347, + "id": 3378, "nodeType": "Block", "src": "1910:596:19", "statements": [ { "assignments": [ - 3299 + 3330 ], "declarations": [ { "constant": false, - "id": 3299, + "id": 3330, "mutability": "mutable", "name": "keyIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3347, + "scope": 3378, "src": "2018:16:19", "stateVariable": false, "storageLocation": "default", @@ -242,7 +242,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3298, + "id": 3329, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2018:7:19", @@ -255,46 +255,46 @@ "visibility": "internal" } ], - "id": 3304, + "id": 3335, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3300, + "id": 3331, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, + "referencedDeclaration": 3320, "src": "2037:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3301, + "id": 3332, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, + "referencedDeclaration": 3316, "src": "2037:12:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3303, + "id": 3334, "indexExpression": { "argumentTypes": null, - "id": 3302, + "id": 3333, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3291, + "referencedDeclaration": 3322, "src": "2050:3:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -322,18 +322,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3307, + "id": 3338, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3305, + "id": 3336, "name": "keyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3299, + "referencedDeclaration": 3330, "src": "2069:8:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -345,7 +345,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3306, + "id": 3337, "isConstant": false, "isLValue": false, "isPure": true, @@ -367,14 +367,14 @@ } }, "falseBody": { - "id": 3345, + "id": 3376, "nodeType": "Block", "src": "2408:92:19", "statements": [ { "expression": { "argumentTypes": null, - "id": 3341, + "id": 3372, "isConstant": false, "isLValue": false, "isPure": false, @@ -387,50 +387,50 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3332, + "id": 3363, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, + "referencedDeclaration": 3320, "src": "2422:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3337, + "id": 3368, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "2422:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3338, + "id": 3369, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3336, + "id": 3367, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3334, + "id": 3365, "name": "keyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3299, + "referencedDeclaration": 3330, "src": "2435:8:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -442,7 +442,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 3335, + "id": 3366, "isConstant": false, "isLValue": false, "isPure": true, @@ -470,18 +470,18 @@ "nodeType": "IndexAccess", "src": "2422:26:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage", "typeString": "struct EnumerableMap.MapEntry storage ref" } }, - "id": 3339, + "id": 3370, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "_value", "nodeType": "MemberAccess", - "referencedDeclaration": 3277, + "referencedDeclaration": 3308, "src": "2422:33:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -492,11 +492,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3340, + "id": 3371, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3293, + "referencedDeclaration": 3324, "src": "2458:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -509,7 +509,7 @@ "typeString": "bytes32" } }, - "id": 3342, + "id": 3373, "nodeType": "ExpressionStatement", "src": "2422:41:19" }, @@ -517,7 +517,7 @@ "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 3343, + "id": 3374, "isConstant": false, "isLValue": false, "isPure": true, @@ -532,18 +532,18 @@ }, "value": "false" }, - "functionReturnParameters": 3297, - "id": 3344, + "functionReturnParameters": 3328, + "id": 3375, "nodeType": "Return", "src": "2477:12:19" } ] }, - "id": 3346, + "id": 3377, "nodeType": "IfStatement", "src": "2065:435:19", "trueBody": { - "id": 3331, + "id": 3362, "nodeType": "Block", "src": "2084:318:19", "statements": [ @@ -556,11 +556,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3314, + "id": 3345, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3291, + "referencedDeclaration": 3322, "src": "2170:3:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -569,11 +569,11 @@ }, { "argumentTypes": null, - "id": 3315, + "id": 3346, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3293, + "referencedDeclaration": 3324, "src": "2183:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -592,18 +592,18 @@ "typeString": "bytes32" } ], - "id": 3313, + "id": 3344, "name": "MapEntry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3278, + "referencedDeclaration": 3309, "src": "2153:8:19", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_MapEntry_$3278_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_MapEntry_$3309_storage_ptr_$", "typeString": "type(struct EnumerableMap.MapEntry storage pointer)" } }, - "id": 3316, + "id": 3347, "isConstant": false, "isLValue": false, "isPure": false, @@ -617,7 +617,7 @@ "src": "2153:38:19", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_memory_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_memory_ptr", "typeString": "struct EnumerableMap.MapEntry memory" } } @@ -625,7 +625,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_MapEntry_$3278_memory_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_memory_ptr", "typeString": "struct EnumerableMap.MapEntry memory" } ], @@ -633,32 +633,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3308, + "id": 3339, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, + "referencedDeclaration": 3320, "src": "2135:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3311, + "id": 3342, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "2135:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3312, + "id": 3343, "isConstant": false, "isLValue": false, "isPure": false, @@ -668,11 +668,11 @@ "referencedDeclaration": null, "src": "2135:17:19", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_MapEntry_$3278_storage_$returns$__$", + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_MapEntry_$3309_storage_$returns$__$", "typeString": "function (struct EnumerableMap.MapEntry storage ref)" } }, - "id": 3317, + "id": 3348, "isConstant": false, "isLValue": false, "isPure": false, @@ -687,14 +687,14 @@ "typeString": "tuple()" } }, - "id": 3318, + "id": 3349, "nodeType": "ExpressionStatement", "src": "2135:57:19" }, { "expression": { "argumentTypes": null, - "id": 3327, + "id": 3358, "isConstant": false, "isLValue": false, "isPure": false, @@ -705,39 +705,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3319, + "id": 3350, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, + "referencedDeclaration": 3320, "src": "2327:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3322, + "id": 3353, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, + "referencedDeclaration": 3316, "src": "2327:12:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3323, + "id": 3354, "indexExpression": { "argumentTypes": null, - "id": 3321, + "id": 3352, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3291, + "referencedDeclaration": 3322, "src": "2340:3:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -763,32 +763,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3324, + "id": 3355, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, + "referencedDeclaration": 3320, "src": "2347:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3325, + "id": 3356, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "2347:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3326, + "id": 3357, "isConstant": false, "isLValue": false, "isPure": false, @@ -808,7 +808,7 @@ "typeString": "uint256" } }, - "id": 3328, + "id": 3359, "nodeType": "ExpressionStatement", "src": "2327:39:19" }, @@ -816,7 +816,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3329, + "id": 3360, "isConstant": false, "isLValue": false, "isPure": true, @@ -831,8 +831,8 @@ }, "value": "true" }, - "functionReturnParameters": 3297, - "id": 3330, + "functionReturnParameters": 3328, + "id": 3361, "nodeType": "Return", "src": "2380:11:19" } @@ -842,12 +842,12 @@ ] }, "documentation": { - "id": 3287, + "id": 3318, "nodeType": "StructuredDocumentation", "src": "1607:216:19", "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." }, - "id": 3348, + "id": 3379, "implemented": true, "kind": "function", "modifiers": [], @@ -855,33 +855,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3294, + "id": 3325, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3289, + "id": 3320, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3348, + "scope": 3379, "src": "1842:15:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" }, "typeName": { "contractScope": null, - "id": 3288, + "id": 3319, "name": "Map", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3286, + "referencedDeclaration": 3317, "src": "1842:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" } }, @@ -890,12 +890,12 @@ }, { "constant": false, - "id": 3291, + "id": 3322, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3348, + "scope": 3379, "src": "1859:11:19", "stateVariable": false, "storageLocation": "default", @@ -904,7 +904,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3290, + "id": 3321, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1859:7:19", @@ -918,12 +918,12 @@ }, { "constant": false, - "id": 3293, + "id": 3324, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3348, + "scope": 3379, "src": "1872:13:19", "stateVariable": false, "storageLocation": "default", @@ -932,7 +932,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3292, + "id": 3323, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1872:7:19", @@ -948,17 +948,17 @@ "src": "1841:45:19" }, "returnParameters": { - "id": 3297, + "id": 3328, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3296, + "id": 3327, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3348, + "scope": 3379, "src": "1904:4:19", "stateVariable": false, "storageLocation": "default", @@ -967,7 +967,7 @@ "typeString": "bool" }, "typeName": { - "id": 3295, + "id": 3326, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1904:4:19", @@ -982,7 +982,7 @@ ], "src": "1903:6:19" }, - "scope": 3725, + "scope": 3756, "src": "1828:678:19", "stateMutability": "nonpayable", "virtual": false, @@ -990,23 +990,23 @@ }, { "body": { - "id": 3428, + "id": 3459, "nodeType": "Block", "src": "2744:1447:19", "statements": [ { "assignments": [ - 3359 + 3390 ], "declarations": [ { "constant": false, - "id": 3359, + "id": 3390, "mutability": "mutable", "name": "keyIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3428, + "scope": 3459, "src": "2852:16:19", "stateVariable": false, "storageLocation": "default", @@ -1015,7 +1015,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3358, + "id": 3389, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2852:7:19", @@ -1028,46 +1028,46 @@ "visibility": "internal" } ], - "id": 3364, + "id": 3395, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3360, + "id": 3391, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3351, + "referencedDeclaration": 3382, "src": "2871:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3361, + "id": 3392, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, + "referencedDeclaration": 3316, "src": "2871:12:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3363, + "id": 3394, "indexExpression": { "argumentTypes": null, - "id": 3362, + "id": 3393, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3353, + "referencedDeclaration": 3384, "src": "2884:3:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1095,18 +1095,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3367, + "id": 3398, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3365, + "id": 3396, "name": "keyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3359, + "referencedDeclaration": 3390, "src": "2903:8:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1118,7 +1118,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3366, + "id": 3397, "isConstant": false, "isLValue": false, "isPure": true, @@ -1140,7 +1140,7 @@ } }, "falseBody": { - "id": 3426, + "id": 3457, "nodeType": "Block", "src": "4148:37:19", "statements": [ @@ -1148,7 +1148,7 @@ "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 3424, + "id": 3455, "isConstant": false, "isLValue": false, "isPure": true, @@ -1163,34 +1163,34 @@ }, "value": "false" }, - "functionReturnParameters": 3357, - "id": 3425, + "functionReturnParameters": 3388, + "id": 3456, "nodeType": "Return", "src": "4162:12:19" } ] }, - "id": 3427, + "id": 3458, "nodeType": "IfStatement", "src": "2899:1286:19", "trueBody": { - "id": 3423, + "id": 3454, "nodeType": "Block", "src": "2918:1224:19", "statements": [ { "assignments": [ - 3369 + 3400 ], "declarations": [ { "constant": false, - "id": 3369, + "id": 3400, "mutability": "mutable", "name": "toDeleteIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3423, + "scope": 3454, "src": "3259:21:19", "stateVariable": false, "storageLocation": "default", @@ -1199,7 +1199,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3368, + "id": 3399, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3259:7:19", @@ -1212,25 +1212,25 @@ "visibility": "internal" } ], - "id": 3373, + "id": 3404, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3372, + "id": 3403, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3370, + "id": 3401, "name": "keyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3359, + "referencedDeclaration": 3390, "src": "3283:8:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1242,7 +1242,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 3371, + "id": 3402, "isConstant": false, "isLValue": false, "isPure": true, @@ -1268,17 +1268,17 @@ }, { "assignments": [ - 3375 + 3406 ], "declarations": [ { "constant": false, - "id": 3375, + "id": 3406, "mutability": "mutable", "name": "lastIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3423, + "scope": 3454, "src": "3309:17:19", "stateVariable": false, "storageLocation": "default", @@ -1287,7 +1287,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3374, + "id": 3405, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3309:7:19", @@ -1300,14 +1300,14 @@ "visibility": "internal" } ], - "id": 3381, + "id": 3412, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3380, + "id": 3411, "isConstant": false, "isLValue": false, "isPure": false, @@ -1318,32 +1318,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3376, + "id": 3407, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3351, + "referencedDeclaration": 3382, "src": "3329:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3377, + "id": 3408, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "3329:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3378, + "id": 3409, "isConstant": false, "isLValue": false, "isPure": false, @@ -1362,7 +1362,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 3379, + "id": 3410, "isConstant": false, "isLValue": false, "isPure": true, @@ -1388,33 +1388,33 @@ }, { "assignments": [ - 3383 + 3414 ], "declarations": [ { "constant": false, - "id": 3383, + "id": 3414, "mutability": "mutable", "name": "lastEntry", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3423, + "scope": 3454, "src": "3592:26:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage_ptr", "typeString": "struct EnumerableMap.MapEntry" }, "typeName": { "contractScope": null, - "id": 3382, + "id": 3413, "name": "MapEntry", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3278, + "referencedDeclaration": 3309, "src": "3592:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage_ptr", "typeString": "struct EnumerableMap.MapEntry" } }, @@ -1422,46 +1422,46 @@ "visibility": "internal" } ], - "id": 3388, + "id": 3419, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3384, + "id": 3415, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3351, + "referencedDeclaration": 3382, "src": "3621:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3385, + "id": 3416, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "3621:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3387, + "id": 3418, "indexExpression": { "argumentTypes": null, - "id": 3386, + "id": 3417, "name": "lastIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3375, + "referencedDeclaration": 3406, "src": "3634:9:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1475,7 +1475,7 @@ "nodeType": "IndexAccess", "src": "3621:23:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage", "typeString": "struct EnumerableMap.MapEntry storage ref" } }, @@ -1485,7 +1485,7 @@ { "expression": { "argumentTypes": null, - "id": 3395, + "id": 3426, "isConstant": false, "isLValue": false, "isPure": false, @@ -1496,39 +1496,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3389, + "id": 3420, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3351, + "referencedDeclaration": 3382, "src": "3736:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3392, + "id": 3423, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "3736:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3393, + "id": 3424, "indexExpression": { "argumentTypes": null, - "id": 3391, + "id": 3422, "name": "toDeleteIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3369, + "referencedDeclaration": 3400, "src": "3749:13:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1542,7 +1542,7 @@ "nodeType": "IndexAccess", "src": "3736:27:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage", "typeString": "struct EnumerableMap.MapEntry storage ref" } }, @@ -1550,31 +1550,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3394, + "id": 3425, "name": "lastEntry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, + "referencedDeclaration": 3414, "src": "3766:9:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage_ptr", "typeString": "struct EnumerableMap.MapEntry storage pointer" } }, "src": "3736:39:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage", "typeString": "struct EnumerableMap.MapEntry storage ref" } }, - "id": 3396, + "id": 3427, "nodeType": "ExpressionStatement", "src": "3736:39:19" }, { "expression": { "argumentTypes": null, - "id": 3406, + "id": 3437, "isConstant": false, "isLValue": false, "isPure": false, @@ -1585,55 +1585,55 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3397, + "id": 3428, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3351, + "referencedDeclaration": 3382, "src": "3841:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3401, + "id": 3432, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, + "referencedDeclaration": 3316, "src": "3841:12:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3402, + "id": 3433, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3399, + "id": 3430, "name": "lastEntry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, + "referencedDeclaration": 3414, "src": "3854:9:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage_ptr", "typeString": "struct EnumerableMap.MapEntry storage pointer" } }, - "id": 3400, + "id": 3431, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_key", "nodeType": "MemberAccess", - "referencedDeclaration": 3275, + "referencedDeclaration": 3306, "src": "3854:14:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1659,18 +1659,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3405, + "id": 3436, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3403, + "id": 3434, "name": "toDeleteIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3369, + "referencedDeclaration": 3400, "src": "3872:13:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1682,7 +1682,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 3404, + "id": 3435, "isConstant": false, "isLValue": false, "isPure": true, @@ -1709,7 +1709,7 @@ "typeString": "uint256" } }, - "id": 3407, + "id": 3438, "nodeType": "ExpressionStatement", "src": "3841:48:19" }, @@ -1723,32 +1723,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3408, + "id": 3439, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3351, + "referencedDeclaration": 3382, "src": "3995:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3411, + "id": 3442, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "3995:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3412, + "id": 3443, "isConstant": false, "isLValue": false, "isPure": false, @@ -1762,7 +1762,7 @@ "typeString": "function ()" } }, - "id": 3413, + "id": 3444, "isConstant": false, "isLValue": false, "isPure": false, @@ -1777,14 +1777,14 @@ "typeString": "tuple()" } }, - "id": 3414, + "id": 3445, "nodeType": "ExpressionStatement", "src": "3995:18:19" }, { "expression": { "argumentTypes": null, - "id": 3419, + "id": 3450, "isConstant": false, "isLValue": false, "isPure": false, @@ -1799,39 +1799,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3415, + "id": 3446, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3351, + "referencedDeclaration": 3382, "src": "4088:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3416, + "id": 3447, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, + "referencedDeclaration": 3316, "src": "4088:12:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3418, + "id": 3449, "indexExpression": { "argumentTypes": null, - "id": 3417, + "id": 3448, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3353, + "referencedDeclaration": 3384, "src": "4101:3:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1854,7 +1854,7 @@ "typeString": "tuple()" } }, - "id": 3420, + "id": 3451, "nodeType": "ExpressionStatement", "src": "4081:24:19" }, @@ -1862,7 +1862,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3421, + "id": 3452, "isConstant": false, "isLValue": false, "isPure": true, @@ -1877,8 +1877,8 @@ }, "value": "true" }, - "functionReturnParameters": 3357, - "id": 3422, + "functionReturnParameters": 3388, + "id": 3453, "nodeType": "Return", "src": "4120:11:19" } @@ -1888,12 +1888,12 @@ ] }, "documentation": { - "id": 3349, + "id": 3380, "nodeType": "StructuredDocumentation", "src": "2512:157:19", "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." }, - "id": 3429, + "id": 3460, "implemented": true, "kind": "function", "modifiers": [], @@ -1901,33 +1901,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3354, + "id": 3385, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3351, + "id": 3382, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3429, + "scope": 3460, "src": "2691:15:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" }, "typeName": { "contractScope": null, - "id": 3350, + "id": 3381, "name": "Map", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3286, + "referencedDeclaration": 3317, "src": "2691:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" } }, @@ -1936,12 +1936,12 @@ }, { "constant": false, - "id": 3353, + "id": 3384, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3429, + "scope": 3460, "src": "2708:11:19", "stateVariable": false, "storageLocation": "default", @@ -1950,7 +1950,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3352, + "id": 3383, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2708:7:19", @@ -1966,17 +1966,17 @@ "src": "2690:30:19" }, "returnParameters": { - "id": 3357, + "id": 3388, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3356, + "id": 3387, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3429, + "scope": 3460, "src": "2738:4:19", "stateVariable": false, "storageLocation": "default", @@ -1985,7 +1985,7 @@ "typeString": "bool" }, "typeName": { - "id": 3355, + "id": 3386, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2738:4:19", @@ -2000,7 +2000,7 @@ ], "src": "2737:6:19" }, - "scope": 3725, + "scope": 3756, "src": "2674:1517:19", "stateMutability": "nonpayable", "virtual": false, @@ -2008,7 +2008,7 @@ }, { "body": { - "id": 3446, + "id": 3477, "nodeType": "Block", "src": "4347:46:19", "statements": [ @@ -2019,7 +2019,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3444, + "id": 3475, "isConstant": false, "isLValue": false, "isPure": false, @@ -2030,39 +2030,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3439, + "id": 3470, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3432, + "referencedDeclaration": 3463, "src": "4364:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3440, + "id": 3471, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, + "referencedDeclaration": 3316, "src": "4364:12:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3442, + "id": 3473, "indexExpression": { "argumentTypes": null, - "id": 3441, + "id": 3472, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3434, + "referencedDeclaration": 3465, "src": "4377:3:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2085,7 +2085,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3443, + "id": 3474, "isConstant": false, "isLValue": false, "isPure": true, @@ -2106,20 +2106,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 3438, - "id": 3445, + "functionReturnParameters": 3469, + "id": 3476, "nodeType": "Return", "src": "4357:29:19" } ] }, "documentation": { - "id": 3430, + "id": 3461, "nodeType": "StructuredDocumentation", "src": "4197:68:19", "text": " @dev Returns true if the key is in the map. O(1)." }, - "id": 3447, + "id": 3478, "implemented": true, "kind": "function", "modifiers": [], @@ -2127,33 +2127,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3435, + "id": 3466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3432, + "id": 3463, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3447, + "scope": 3478, "src": "4289:15:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" }, "typeName": { "contractScope": null, - "id": 3431, + "id": 3462, "name": "Map", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3286, + "referencedDeclaration": 3317, "src": "4289:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" } }, @@ -2162,12 +2162,12 @@ }, { "constant": false, - "id": 3434, + "id": 3465, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3447, + "scope": 3478, "src": "4306:11:19", "stateVariable": false, "storageLocation": "default", @@ -2176,7 +2176,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3433, + "id": 3464, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4306:7:19", @@ -2192,17 +2192,17 @@ "src": "4288:30:19" }, "returnParameters": { - "id": 3438, + "id": 3469, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3437, + "id": 3468, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3447, + "scope": 3478, "src": "4341:4:19", "stateVariable": false, "storageLocation": "default", @@ -2211,7 +2211,7 @@ "typeString": "bool" }, "typeName": { - "id": 3436, + "id": 3467, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4341:4:19", @@ -2226,7 +2226,7 @@ ], "src": "4340:6:19" }, - "scope": 3725, + "scope": 3756, "src": "4270:123:19", "stateMutability": "view", "virtual": false, @@ -2234,7 +2234,7 @@ }, { "body": { - "id": 3459, + "id": 3490, "nodeType": "Block", "src": "4548:43:19", "statements": [ @@ -2245,32 +2245,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3455, + "id": 3486, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3450, + "referencedDeclaration": 3481, "src": "4565:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3456, + "id": 3487, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "4565:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3457, + "id": 3488, "isConstant": false, "isLValue": false, "isPure": false, @@ -2284,20 +2284,20 @@ "typeString": "uint256" } }, - "functionReturnParameters": 3454, - "id": 3458, + "functionReturnParameters": 3485, + "id": 3489, "nodeType": "Return", "src": "4558:26:19" } ] }, "documentation": { - "id": 3448, + "id": 3479, "nodeType": "StructuredDocumentation", "src": "4399:79:19", "text": " @dev Returns the number of key-value pairs in the map. O(1)." }, - "id": 3460, + "id": 3491, "implemented": true, "kind": "function", "modifiers": [], @@ -2305,33 +2305,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3451, + "id": 3482, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3450, + "id": 3481, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3460, + "scope": 3491, "src": "4500:15:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" }, "typeName": { "contractScope": null, - "id": 3449, + "id": 3480, "name": "Map", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3286, + "referencedDeclaration": 3317, "src": "4500:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" } }, @@ -2342,17 +2342,17 @@ "src": "4499:17:19" }, "returnParameters": { - "id": 3454, + "id": 3485, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3453, + "id": 3484, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3460, + "scope": 3491, "src": "4539:7:19", "stateVariable": false, "storageLocation": "default", @@ -2361,7 +2361,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3452, + "id": 3483, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4539:7:19", @@ -2376,7 +2376,7 @@ ], "src": "4538:9:19" }, - "scope": 3725, + "scope": 3756, "src": "4483:108:19", "stateMutability": "view", "virtual": false, @@ -2384,7 +2384,7 @@ }, { "body": { - "id": 3494, + "id": 3525, "nodeType": "Block", "src": "5019:189:19", "statements": [ @@ -2398,7 +2398,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3477, + "id": 3508, "isConstant": false, "isLValue": false, "isPure": false, @@ -2409,32 +2409,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3473, + "id": 3504, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3463, + "referencedDeclaration": 3494, "src": "5037:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3474, + "id": 3505, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "5037:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3475, + "id": 3506, "isConstant": false, "isLValue": false, "isPure": false, @@ -2452,11 +2452,11 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 3476, + "id": 3507, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3465, + "referencedDeclaration": 3496, "src": "5059:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2472,7 +2472,7 @@ { "argumentTypes": null, "hexValue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", - "id": 3478, + "id": 3509, "isConstant": false, "isLValue": false, "isPure": true, @@ -2499,7 +2499,7 @@ "typeString": "literal_string \"EnumerableMap: index out of bounds\"" } ], - "id": 3472, + "id": 3503, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2513,7 +2513,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 3479, + "id": 3510, "isConstant": false, "isLValue": false, "isPure": false, @@ -2528,39 +2528,39 @@ "typeString": "tuple()" } }, - "id": 3480, + "id": 3511, "nodeType": "ExpressionStatement", "src": "5029:74:19" }, { "assignments": [ - 3482 + 3513 ], "declarations": [ { "constant": false, - "id": 3482, + "id": 3513, "mutability": "mutable", "name": "entry", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3494, + "scope": 3525, "src": "5114:22:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage_ptr", "typeString": "struct EnumerableMap.MapEntry" }, "typeName": { "contractScope": null, - "id": 3481, + "id": 3512, "name": "MapEntry", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3278, + "referencedDeclaration": 3309, "src": "5114:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage_ptr", "typeString": "struct EnumerableMap.MapEntry" } }, @@ -2568,46 +2568,46 @@ "visibility": "internal" } ], - "id": 3487, + "id": 3518, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3483, + "id": 3514, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3463, + "referencedDeclaration": 3494, "src": "5139:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3484, + "id": 3515, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "5139:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3486, + "id": 3517, "indexExpression": { "argumentTypes": null, - "id": 3485, + "id": 3516, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3465, + "referencedDeclaration": 3496, "src": "5152:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2621,7 +2621,7 @@ "nodeType": "IndexAccess", "src": "5139:19:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage", "typeString": "struct EnumerableMap.MapEntry storage ref" } }, @@ -2636,25 +2636,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3488, + "id": 3519, "name": "entry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3482, + "referencedDeclaration": 3513, "src": "5176:5:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage_ptr", "typeString": "struct EnumerableMap.MapEntry storage pointer" } }, - "id": 3489, + "id": 3520, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_key", "nodeType": "MemberAccess", - "referencedDeclaration": 3275, + "referencedDeclaration": 3306, "src": "5176:10:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2665,25 +2665,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3490, + "id": 3521, "name": "entry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3482, + "referencedDeclaration": 3513, "src": "5188:5:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage_ptr", "typeString": "struct EnumerableMap.MapEntry storage pointer" } }, - "id": 3491, + "id": 3522, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_value", "nodeType": "MemberAccess", - "referencedDeclaration": 3277, + "referencedDeclaration": 3308, "src": "5188:12:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2691,7 +2691,7 @@ } } ], - "id": 3492, + "id": 3523, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -2704,20 +2704,20 @@ "typeString": "tuple(bytes32,bytes32)" } }, - "functionReturnParameters": 3471, - "id": 3493, + "functionReturnParameters": 3502, + "id": 3524, "nodeType": "Return", "src": "5168:33:19" } ] }, "documentation": { - "id": 3461, + "id": 3492, "nodeType": "StructuredDocumentation", "src": "4596:333:19", "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." }, - "id": 3495, + "id": 3526, "implemented": true, "kind": "function", "modifiers": [], @@ -2725,33 +2725,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3466, + "id": 3497, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3463, + "id": 3494, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3495, + "scope": 3526, "src": "4947:15:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" }, "typeName": { "contractScope": null, - "id": 3462, + "id": 3493, "name": "Map", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3286, + "referencedDeclaration": 3317, "src": "4947:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" } }, @@ -2760,12 +2760,12 @@ }, { "constant": false, - "id": 3465, + "id": 3496, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3495, + "scope": 3526, "src": "4964:13:19", "stateVariable": false, "storageLocation": "default", @@ -2774,7 +2774,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3464, + "id": 3495, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4964:7:19", @@ -2790,17 +2790,17 @@ "src": "4946:32:19" }, "returnParameters": { - "id": 3471, + "id": 3502, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3468, + "id": 3499, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3495, + "scope": 3526, "src": "5001:7:19", "stateVariable": false, "storageLocation": "default", @@ -2809,7 +2809,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3467, + "id": 3498, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5001:7:19", @@ -2823,12 +2823,12 @@ }, { "constant": false, - "id": 3470, + "id": 3501, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3495, + "scope": 3526, "src": "5010:7:19", "stateVariable": false, "storageLocation": "default", @@ -2837,7 +2837,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3469, + "id": 3500, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5010:7:19", @@ -2852,7 +2852,7 @@ ], "src": "5000:18:19" }, - "scope": 3725, + "scope": 3756, "src": "4934:274:19", "stateMutability": "view", "virtual": false, @@ -2860,7 +2860,7 @@ }, { "body": { - "id": 3511, + "id": 3542, "nodeType": "Block", "src": "5435:72:19", "statements": [ @@ -2870,24 +2870,24 @@ "arguments": [ { "argumentTypes": null, - "id": 3506, + "id": 3537, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3498, + "referencedDeclaration": 3529, "src": "5457:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, { "argumentTypes": null, - "id": 3507, + "id": 3538, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3500, + "referencedDeclaration": 3531, "src": "5462:3:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2897,7 +2897,7 @@ { "argumentTypes": null, "hexValue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", - "id": 3508, + "id": 3539, "isConstant": false, "isLValue": false, "isPure": true, @@ -2916,7 +2916,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" }, { @@ -2928,21 +2928,21 @@ "typeString": "literal_string \"EnumerableMap: nonexistent key\"" } ], - "id": 3505, + "id": 3536, "name": "_get", "nodeType": "Identifier", "overloadedDeclarations": [ - 3512, - 3547 + 3543, + 3578 ], - "referencedDeclaration": 3547, + "referencedDeclaration": 3578, "src": "5452:4:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3286_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3317_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)" } }, - "id": 3509, + "id": 3540, "isConstant": false, "isLValue": false, "isPure": false, @@ -2957,20 +2957,20 @@ "typeString": "bytes32" } }, - "functionReturnParameters": 3504, - "id": 3510, + "functionReturnParameters": 3535, + "id": 3541, "nodeType": "Return", "src": "5445:55:19" } ] }, "documentation": { - "id": 3496, + "id": 3527, "nodeType": "StructuredDocumentation", "src": "5214:141:19", "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." }, - "id": 3512, + "id": 3543, "implemented": true, "kind": "function", "modifiers": [], @@ -2978,33 +2978,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3501, + "id": 3532, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3498, + "id": 3529, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3512, + "scope": 3543, "src": "5374:15:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" }, "typeName": { "contractScope": null, - "id": 3497, + "id": 3528, "name": "Map", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3286, + "referencedDeclaration": 3317, "src": "5374:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" } }, @@ -3013,12 +3013,12 @@ }, { "constant": false, - "id": 3500, + "id": 3531, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3512, + "scope": 3543, "src": "5391:11:19", "stateVariable": false, "storageLocation": "default", @@ -3027,7 +3027,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3499, + "id": 3530, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5391:7:19", @@ -3043,17 +3043,17 @@ "src": "5373:30:19" }, "returnParameters": { - "id": 3504, + "id": 3535, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3503, + "id": 3534, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3512, + "scope": 3543, "src": "5426:7:19", "stateVariable": false, "storageLocation": "default", @@ -3062,7 +3062,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3502, + "id": 3533, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5426:7:19", @@ -3077,7 +3077,7 @@ ], "src": "5425:9:19" }, - "scope": 3725, + "scope": 3756, "src": "5360:147:19", "stateMutability": "view", "virtual": false, @@ -3085,23 +3085,23 @@ }, { "body": { - "id": 3546, + "id": 3577, "nodeType": "Block", "src": "5718:212:19", "statements": [ { "assignments": [ - 3525 + 3556 ], "declarations": [ { "constant": false, - "id": 3525, + "id": 3556, "mutability": "mutable", "name": "keyIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3546, + "scope": 3577, "src": "5728:16:19", "stateVariable": false, "storageLocation": "default", @@ -3110,7 +3110,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3524, + "id": 3555, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5728:7:19", @@ -3123,46 +3123,46 @@ "visibility": "internal" } ], - "id": 3530, + "id": 3561, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3526, + "id": 3557, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, + "referencedDeclaration": 3546, "src": "5747:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3527, + "id": 3558, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, + "referencedDeclaration": 3316, "src": "5747:12:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3529, + "id": 3560, "indexExpression": { "argumentTypes": null, - "id": 3528, + "id": 3559, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3517, + "referencedDeclaration": 3548, "src": "5760:3:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3193,18 +3193,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3534, + "id": 3565, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3532, + "id": 3563, "name": "keyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, + "referencedDeclaration": 3556, "src": "5782:8:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3216,7 +3216,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3533, + "id": 3564, "isConstant": false, "isLValue": false, "isPure": true, @@ -3239,11 +3239,11 @@ }, { "argumentTypes": null, - "id": 3535, + "id": 3566, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, + "referencedDeclaration": 3550, "src": "5797:12:19", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -3262,7 +3262,7 @@ "typeString": "string memory" } ], - "id": 3531, + "id": 3562, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3276,7 +3276,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 3536, + "id": 3567, "isConstant": false, "isLValue": false, "isPure": false, @@ -3291,7 +3291,7 @@ "typeString": "tuple()" } }, - "id": 3537, + "id": 3568, "nodeType": "ExpressionStatement", "src": "5774:36:19" }, @@ -3304,50 +3304,50 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3538, + "id": 3569, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, + "referencedDeclaration": 3546, "src": "5863:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3539, + "id": 3570, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "5863:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3543, + "id": 3574, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3542, + "id": 3573, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3540, + "id": 3571, "name": "keyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, + "referencedDeclaration": 3556, "src": "5876:8:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3359,7 +3359,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 3541, + "id": 3572, "isConstant": false, "isLValue": false, "isPure": true, @@ -3387,38 +3387,38 @@ "nodeType": "IndexAccess", "src": "5863:26:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage", "typeString": "struct EnumerableMap.MapEntry storage ref" } }, - "id": 3544, + "id": 3575, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_value", "nodeType": "MemberAccess", - "referencedDeclaration": 3277, + "referencedDeclaration": 3308, "src": "5863:33:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 3523, - "id": 3545, + "functionReturnParameters": 3554, + "id": 3576, "nodeType": "Return", "src": "5856:40:19" } ] }, "documentation": { - "id": 3513, + "id": 3544, "nodeType": "StructuredDocumentation", "src": "5513:97:19", "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map." }, - "id": 3547, + "id": 3578, "implemented": true, "kind": "function", "modifiers": [], @@ -3426,33 +3426,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3520, + "id": 3551, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3515, + "id": 3546, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3547, + "scope": 3578, "src": "5629:15:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" }, "typeName": { "contractScope": null, - "id": 3514, + "id": 3545, "name": "Map", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3286, + "referencedDeclaration": 3317, "src": "5629:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" } }, @@ -3461,12 +3461,12 @@ }, { "constant": false, - "id": 3517, + "id": 3548, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3547, + "scope": 3578, "src": "5646:11:19", "stateVariable": false, "storageLocation": "default", @@ -3475,7 +3475,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3516, + "id": 3547, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5646:7:19", @@ -3489,12 +3489,12 @@ }, { "constant": false, - "id": 3519, + "id": 3550, "mutability": "mutable", "name": "errorMessage", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3547, + "scope": 3578, "src": "5659:26:19", "stateVariable": false, "storageLocation": "memory", @@ -3503,7 +3503,7 @@ "typeString": "string" }, "typeName": { - "id": 3518, + "id": 3549, "name": "string", "nodeType": "ElementaryTypeName", "src": "5659:6:19", @@ -3519,17 +3519,17 @@ "src": "5628:58:19" }, "returnParameters": { - "id": 3523, + "id": 3554, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3522, + "id": 3553, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3547, + "scope": 3578, "src": "5709:7:19", "stateVariable": false, "storageLocation": "default", @@ -3538,7 +3538,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3521, + "id": 3552, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5709:7:19", @@ -3553,7 +3553,7 @@ ], "src": "5708:9:19" }, - "scope": 3725, + "scope": 3756, "src": "5615:315:19", "stateMutability": "view", "virtual": false, @@ -3561,32 +3561,32 @@ }, { "canonicalName": "EnumerableMap.UintToAddressMap", - "id": 3550, + "id": 3581, "members": [ { "constant": false, - "id": 3549, + "id": 3580, "mutability": "mutable", "name": "_inner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3550, + "scope": 3581, "src": "5995:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" }, "typeName": { "contractScope": null, - "id": 3548, + "id": 3579, "name": "Map", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3286, + "referencedDeclaration": 3317, "src": "5995:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" } }, @@ -3596,13 +3596,13 @@ ], "name": "UintToAddressMap", "nodeType": "StructDefinition", - "scope": 3725, + "scope": 3756, "src": "5961:51:19", "visibility": "public" }, { "body": { - "id": 3578, + "id": 3609, "nodeType": "Block", "src": "6334:79:19", "statements": [ @@ -3614,28 +3614,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3563, + "id": 3594, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3553, + "referencedDeclaration": 3584, "src": "6356:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" } }, - "id": 3564, + "id": 3595, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3549, + "referencedDeclaration": 3580, "src": "6356:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" } }, @@ -3644,11 +3644,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3567, + "id": 3598, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3555, + "referencedDeclaration": 3586, "src": "6376:3:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3663,7 +3663,7 @@ "typeString": "uint256" } ], - "id": 3566, + "id": 3597, "isConstant": false, "isLValue": false, "isPure": true, @@ -3675,7 +3675,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 3565, + "id": 3596, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6368:7:19", @@ -3685,7 +3685,7 @@ } } }, - "id": 3568, + "id": 3599, "isConstant": false, "isLValue": false, "isPure": false, @@ -3708,11 +3708,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3573, + "id": 3604, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3557, + "referencedDeclaration": 3588, "src": "6398:5:19", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3727,7 +3727,7 @@ "typeString": "address" } ], - "id": 3572, + "id": 3603, "isConstant": false, "isLValue": false, "isPure": true, @@ -3739,7 +3739,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 3571, + "id": 3602, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6390:7:19", @@ -3749,7 +3749,7 @@ } } }, - "id": 3574, + "id": 3605, "isConstant": false, "isLValue": false, "isPure": false, @@ -3772,7 +3772,7 @@ "typeString": "uint256" } ], - "id": 3570, + "id": 3601, "isConstant": false, "isLValue": false, "isPure": true, @@ -3784,7 +3784,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 3569, + "id": 3600, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6382:7:19", @@ -3794,7 +3794,7 @@ } } }, - "id": 3575, + "id": 3606, "isConstant": false, "isLValue": false, "isPure": false, @@ -3813,7 +3813,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" }, { @@ -3825,18 +3825,18 @@ "typeString": "bytes32" } ], - "id": 3562, + "id": 3593, "name": "_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3348, + "referencedDeclaration": 3379, "src": "6351:4:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$3286_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$3317_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)" } }, - "id": 3576, + "id": 3607, "isConstant": false, "isLValue": false, "isPure": false, @@ -3851,20 +3851,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 3561, - "id": 3577, + "functionReturnParameters": 3592, + "id": 3608, "nodeType": "Return", "src": "6344:62:19" } ] }, "documentation": { - "id": 3551, + "id": 3582, "nodeType": "StructuredDocumentation", "src": "6018:216:19", "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." }, - "id": 3579, + "id": 3610, "implemented": true, "kind": "function", "modifiers": [], @@ -3872,33 +3872,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3558, + "id": 3589, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3553, + "id": 3584, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3579, + "scope": 3610, "src": "6252:28:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" }, "typeName": { "contractScope": null, - "id": 3552, + "id": 3583, "name": "UintToAddressMap", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3550, + "referencedDeclaration": 3581, "src": "6252:16:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" } }, @@ -3907,12 +3907,12 @@ }, { "constant": false, - "id": 3555, + "id": 3586, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3579, + "scope": 3610, "src": "6282:11:19", "stateVariable": false, "storageLocation": "default", @@ -3921,7 +3921,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3554, + "id": 3585, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6282:7:19", @@ -3935,12 +3935,12 @@ }, { "constant": false, - "id": 3557, + "id": 3588, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3579, + "scope": 3610, "src": "6295:13:19", "stateVariable": false, "storageLocation": "default", @@ -3949,7 +3949,7 @@ "typeString": "address" }, "typeName": { - "id": 3556, + "id": 3587, "name": "address", "nodeType": "ElementaryTypeName", "src": "6295:7:19", @@ -3966,17 +3966,17 @@ "src": "6251:58:19" }, "returnParameters": { - "id": 3561, + "id": 3592, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3560, + "id": 3591, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3579, + "scope": 3610, "src": "6328:4:19", "stateVariable": false, "storageLocation": "default", @@ -3985,7 +3985,7 @@ "typeString": "bool" }, "typeName": { - "id": 3559, + "id": 3590, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6328:4:19", @@ -4000,7 +4000,7 @@ ], "src": "6327:6:19" }, - "scope": 3725, + "scope": 3756, "src": "6239:174:19", "stateMutability": "nonpayable", "virtual": false, @@ -4008,7 +4008,7 @@ }, { "body": { - "id": 3598, + "id": 3629, "nodeType": "Block", "src": "6655:57:19", "statements": [ @@ -4020,28 +4020,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3590, + "id": 3621, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3582, + "referencedDeclaration": 3613, "src": "6680:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" } }, - "id": 3591, + "id": 3622, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3549, + "referencedDeclaration": 3580, "src": "6680:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" } }, @@ -4050,11 +4050,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3594, + "id": 3625, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3584, + "referencedDeclaration": 3615, "src": "6700:3:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4069,7 +4069,7 @@ "typeString": "uint256" } ], - "id": 3593, + "id": 3624, "isConstant": false, "isLValue": false, "isPure": true, @@ -4081,7 +4081,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 3592, + "id": 3623, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6692:7:19", @@ -4091,7 +4091,7 @@ } } }, - "id": 3595, + "id": 3626, "isConstant": false, "isLValue": false, "isPure": false, @@ -4110,7 +4110,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" }, { @@ -4118,18 +4118,18 @@ "typeString": "bytes32" } ], - "id": 3589, + "id": 3620, "name": "_remove", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3429, + "referencedDeclaration": 3460, "src": "6672:7:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$3286_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$3317_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)" } }, - "id": 3596, + "id": 3627, "isConstant": false, "isLValue": false, "isPure": false, @@ -4144,20 +4144,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 3588, - "id": 3597, + "functionReturnParameters": 3619, + "id": 3628, "nodeType": "Return", "src": "6665:40:19" } ] }, "documentation": { - "id": 3580, + "id": 3611, "nodeType": "StructuredDocumentation", "src": "6419:148:19", "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." }, - "id": 3599, + "id": 3630, "implemented": true, "kind": "function", "modifiers": [], @@ -4165,33 +4165,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3585, + "id": 3616, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3582, + "id": 3613, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3599, + "scope": 3630, "src": "6588:28:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" }, "typeName": { "contractScope": null, - "id": 3581, + "id": 3612, "name": "UintToAddressMap", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3550, + "referencedDeclaration": 3581, "src": "6588:16:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" } }, @@ -4200,12 +4200,12 @@ }, { "constant": false, - "id": 3584, + "id": 3615, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3599, + "scope": 3630, "src": "6618:11:19", "stateVariable": false, "storageLocation": "default", @@ -4214,7 +4214,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3583, + "id": 3614, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6618:7:19", @@ -4230,17 +4230,17 @@ "src": "6587:43:19" }, "returnParameters": { - "id": 3588, + "id": 3619, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3587, + "id": 3618, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3599, + "scope": 3630, "src": "6649:4:19", "stateVariable": false, "storageLocation": "default", @@ -4249,7 +4249,7 @@ "typeString": "bool" }, "typeName": { - "id": 3586, + "id": 3617, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6649:4:19", @@ -4264,7 +4264,7 @@ ], "src": "6648:6:19" }, - "scope": 3725, + "scope": 3756, "src": "6572:140:19", "stateMutability": "nonpayable", "virtual": false, @@ -4272,7 +4272,7 @@ }, { "body": { - "id": 3618, + "id": 3649, "nodeType": "Block", "src": "6881:59:19", "statements": [ @@ -4284,28 +4284,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3610, + "id": 3641, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, + "referencedDeclaration": 3633, "src": "6908:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" } }, - "id": 3611, + "id": 3642, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3549, + "referencedDeclaration": 3580, "src": "6908:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" } }, @@ -4314,11 +4314,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3614, + "id": 3645, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3604, + "referencedDeclaration": 3635, "src": "6928:3:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4333,7 +4333,7 @@ "typeString": "uint256" } ], - "id": 3613, + "id": 3644, "isConstant": false, "isLValue": false, "isPure": true, @@ -4345,7 +4345,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 3612, + "id": 3643, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6920:7:19", @@ -4355,7 +4355,7 @@ } } }, - "id": 3615, + "id": 3646, "isConstant": false, "isLValue": false, "isPure": false, @@ -4374,7 +4374,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" }, { @@ -4382,18 +4382,18 @@ "typeString": "bytes32" } ], - "id": 3609, + "id": 3640, "name": "_contains", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3447, + "referencedDeclaration": 3478, "src": "6898:9:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3286_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3317_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)" } }, - "id": 3616, + "id": 3647, "isConstant": false, "isLValue": false, "isPure": false, @@ -4408,20 +4408,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 3608, - "id": 3617, + "functionReturnParameters": 3639, + "id": 3648, "nodeType": "Return", "src": "6891:42:19" } ] }, "documentation": { - "id": 3600, + "id": 3631, "nodeType": "StructuredDocumentation", "src": "6718:68:19", "text": " @dev Returns true if the key is in the map. O(1)." }, - "id": 3619, + "id": 3650, "implemented": true, "kind": "function", "modifiers": [], @@ -4429,33 +4429,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3605, + "id": 3636, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3602, + "id": 3633, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3619, + "scope": 3650, "src": "6809:28:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" }, "typeName": { "contractScope": null, - "id": 3601, + "id": 3632, "name": "UintToAddressMap", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3550, + "referencedDeclaration": 3581, "src": "6809:16:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" } }, @@ -4464,12 +4464,12 @@ }, { "constant": false, - "id": 3604, + "id": 3635, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3619, + "scope": 3650, "src": "6839:11:19", "stateVariable": false, "storageLocation": "default", @@ -4478,7 +4478,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3603, + "id": 3634, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6839:7:19", @@ -4494,17 +4494,17 @@ "src": "6808:43:19" }, "returnParameters": { - "id": 3608, + "id": 3639, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3607, + "id": 3638, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3619, + "scope": 3650, "src": "6875:4:19", "stateVariable": false, "storageLocation": "default", @@ -4513,7 +4513,7 @@ "typeString": "bool" }, "typeName": { - "id": 3606, + "id": 3637, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6875:4:19", @@ -4528,7 +4528,7 @@ ], "src": "6874:6:19" }, - "scope": 3725, + "scope": 3756, "src": "6791:149:19", "stateMutability": "view", "virtual": false, @@ -4536,7 +4536,7 @@ }, { "body": { - "id": 3632, + "id": 3663, "nodeType": "Block", "src": "7101:43:19", "statements": [ @@ -4548,28 +4548,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3628, + "id": 3659, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3622, + "referencedDeclaration": 3653, "src": "7126:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" } }, - "id": 3629, + "id": 3660, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3549, + "referencedDeclaration": 3580, "src": "7126:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" } } @@ -4577,22 +4577,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" } ], - "id": 3627, + "id": 3658, "name": "_length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3460, + "referencedDeclaration": 3491, "src": "7118:7:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3286_storage_ptr_$returns$_t_uint256_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3317_storage_ptr_$returns$_t_uint256_$", "typeString": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)" } }, - "id": 3630, + "id": 3661, "isConstant": false, "isLValue": false, "isPure": false, @@ -4607,20 +4607,20 @@ "typeString": "uint256" } }, - "functionReturnParameters": 3626, - "id": 3631, + "functionReturnParameters": 3657, + "id": 3662, "nodeType": "Return", "src": "7111:26:19" } ] }, "documentation": { - "id": 3620, + "id": 3651, "nodeType": "StructuredDocumentation", "src": "6946:72:19", "text": " @dev Returns the number of elements in the map. O(1)." }, - "id": 3633, + "id": 3664, "implemented": true, "kind": "function", "modifiers": [], @@ -4628,33 +4628,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3623, + "id": 3654, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3622, + "id": 3653, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3633, + "scope": 3664, "src": "7039:28:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" }, "typeName": { "contractScope": null, - "id": 3621, + "id": 3652, "name": "UintToAddressMap", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3550, + "referencedDeclaration": 3581, "src": "7039:16:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" } }, @@ -4665,17 +4665,17 @@ "src": "7038:30:19" }, "returnParameters": { - "id": 3626, + "id": 3657, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3625, + "id": 3656, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3633, + "scope": 3664, "src": "7092:7:19", "stateVariable": false, "storageLocation": "default", @@ -4684,7 +4684,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3624, + "id": 3655, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7092:7:19", @@ -4699,7 +4699,7 @@ ], "src": "7091:9:19" }, - "scope": 3725, + "scope": 3756, "src": "7023:121:19", "stateMutability": "view", "virtual": false, @@ -4707,24 +4707,24 @@ }, { "body": { - "id": 3668, + "id": 3699, "nodeType": "Block", "src": "7570:126:19", "statements": [ { "assignments": [ - 3646, - 3648 + 3677, + 3679 ], "declarations": [ { "constant": false, - "id": 3646, + "id": 3677, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3668, + "scope": 3699, "src": "7581:11:19", "stateVariable": false, "storageLocation": "default", @@ -4733,7 +4733,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3645, + "id": 3676, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7581:7:19", @@ -4747,12 +4747,12 @@ }, { "constant": false, - "id": 3648, + "id": 3679, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3668, + "scope": 3699, "src": "7594:13:19", "stateVariable": false, "storageLocation": "default", @@ -4761,7 +4761,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3647, + "id": 3678, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7594:7:19", @@ -4774,7 +4774,7 @@ "visibility": "internal" } ], - "id": 3654, + "id": 3685, "initialValue": { "argumentTypes": null, "arguments": [ @@ -4782,38 +4782,38 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3650, + "id": 3681, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3636, + "referencedDeclaration": 3667, "src": "7615:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" } }, - "id": 3651, + "id": 3682, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3549, + "referencedDeclaration": 3580, "src": "7615:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" } }, { "argumentTypes": null, - "id": 3652, + "id": 3683, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3638, + "referencedDeclaration": 3669, "src": "7627:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4824,7 +4824,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" }, { @@ -4832,18 +4832,18 @@ "typeString": "uint256" } ], - "id": 3649, + "id": 3680, "name": "_at", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3495, + "referencedDeclaration": 3526, "src": "7611:3:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3286_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3317_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$", "typeString": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)" } }, - "id": 3653, + "id": 3684, "isConstant": false, "isLValue": false, "isPure": false, @@ -4870,11 +4870,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3657, + "id": 3688, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3646, + "referencedDeclaration": 3677, "src": "7659:3:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -4889,7 +4889,7 @@ "typeString": "bytes32" } ], - "id": 3656, + "id": 3687, "isConstant": false, "isLValue": false, "isPure": true, @@ -4901,7 +4901,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 3655, + "id": 3686, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7651:7:19", @@ -4911,7 +4911,7 @@ } } }, - "id": 3658, + "id": 3689, "isConstant": false, "isLValue": false, "isPure": false, @@ -4934,11 +4934,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3663, + "id": 3694, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3648, + "referencedDeclaration": 3679, "src": "7681:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -4953,7 +4953,7 @@ "typeString": "bytes32" } ], - "id": 3662, + "id": 3693, "isConstant": false, "isLValue": false, "isPure": true, @@ -4965,7 +4965,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 3661, + "id": 3692, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7673:7:19", @@ -4975,7 +4975,7 @@ } } }, - "id": 3664, + "id": 3695, "isConstant": false, "isLValue": false, "isPure": false, @@ -4998,7 +4998,7 @@ "typeString": "uint256" } ], - "id": 3660, + "id": 3691, "isConstant": false, "isLValue": false, "isPure": true, @@ -5010,7 +5010,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 3659, + "id": 3690, "name": "address", "nodeType": "ElementaryTypeName", "src": "7665:7:19", @@ -5020,7 +5020,7 @@ } } }, - "id": 3665, + "id": 3696, "isConstant": false, "isLValue": false, "isPure": false, @@ -5036,7 +5036,7 @@ } } ], - "id": 3666, + "id": 3697, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -5049,20 +5049,20 @@ "typeString": "tuple(uint256,address payable)" } }, - "functionReturnParameters": 3644, - "id": 3667, + "functionReturnParameters": 3675, + "id": 3698, "nodeType": "Return", "src": "7643:46:19" } ] }, "documentation": { - "id": 3634, + "id": 3665, "nodeType": "StructuredDocumentation", "src": "7149:318:19", "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." }, - "id": 3669, + "id": 3700, "implemented": true, "kind": "function", "modifiers": [], @@ -5070,33 +5070,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3639, + "id": 3670, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3636, + "id": 3667, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3669, + "scope": 3700, "src": "7484:28:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" }, "typeName": { "contractScope": null, - "id": 3635, + "id": 3666, "name": "UintToAddressMap", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3550, + "referencedDeclaration": 3581, "src": "7484:16:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" } }, @@ -5105,12 +5105,12 @@ }, { "constant": false, - "id": 3638, + "id": 3669, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3669, + "scope": 3700, "src": "7514:13:19", "stateVariable": false, "storageLocation": "default", @@ -5119,7 +5119,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3637, + "id": 3668, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7514:7:19", @@ -5135,17 +5135,17 @@ "src": "7483:45:19" }, "returnParameters": { - "id": 3644, + "id": 3675, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3641, + "id": 3672, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3669, + "scope": 3700, "src": "7552:7:19", "stateVariable": false, "storageLocation": "default", @@ -5154,7 +5154,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3640, + "id": 3671, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7552:7:19", @@ -5168,12 +5168,12 @@ }, { "constant": false, - "id": 3643, + "id": 3674, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3669, + "scope": 3700, "src": "7561:7:19", "stateVariable": false, "storageLocation": "default", @@ -5182,7 +5182,7 @@ "typeString": "address" }, "typeName": { - "id": 3642, + "id": 3673, "name": "address", "nodeType": "ElementaryTypeName", "src": "7561:7:19", @@ -5198,7 +5198,7 @@ ], "src": "7551:18:19" }, - "scope": 3725, + "scope": 3756, "src": "7472:224:19", "stateMutability": "view", "virtual": false, @@ -5206,7 +5206,7 @@ }, { "body": { - "id": 3694, + "id": 3725, "nodeType": "Block", "src": "7936:72:19", "statements": [ @@ -5224,28 +5224,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3684, + "id": 3715, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3672, + "referencedDeclaration": 3703, "src": "7974:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" } }, - "id": 3685, + "id": 3716, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3549, + "referencedDeclaration": 3580, "src": "7974:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" } }, @@ -5254,11 +5254,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3688, + "id": 3719, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3674, + "referencedDeclaration": 3705, "src": "7994:3:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5273,7 +5273,7 @@ "typeString": "uint256" } ], - "id": 3687, + "id": 3718, "isConstant": false, "isLValue": false, "isPure": true, @@ -5285,7 +5285,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 3686, + "id": 3717, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7986:7:19", @@ -5295,7 +5295,7 @@ } } }, - "id": 3689, + "id": 3720, "isConstant": false, "isLValue": false, "isPure": false, @@ -5314,7 +5314,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" }, { @@ -5322,21 +5322,21 @@ "typeString": "bytes32" } ], - "id": 3683, + "id": 3714, "name": "_get", "nodeType": "Identifier", "overloadedDeclarations": [ - 3512, - 3547 + 3543, + 3578 ], - "referencedDeclaration": 3512, + "referencedDeclaration": 3543, "src": "7969:4:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3286_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3317_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$", "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)" } }, - "id": 3690, + "id": 3721, "isConstant": false, "isLValue": false, "isPure": false, @@ -5359,7 +5359,7 @@ "typeString": "bytes32" } ], - "id": 3682, + "id": 3713, "isConstant": false, "isLValue": false, "isPure": true, @@ -5371,7 +5371,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 3681, + "id": 3712, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7961:7:19", @@ -5381,7 +5381,7 @@ } } }, - "id": 3691, + "id": 3722, "isConstant": false, "isLValue": false, "isPure": false, @@ -5404,7 +5404,7 @@ "typeString": "uint256" } ], - "id": 3680, + "id": 3711, "isConstant": false, "isLValue": false, "isPure": true, @@ -5416,7 +5416,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 3679, + "id": 3710, "name": "address", "nodeType": "ElementaryTypeName", "src": "7953:7:19", @@ -5426,7 +5426,7 @@ } } }, - "id": 3692, + "id": 3723, "isConstant": false, "isLValue": false, "isPure": false, @@ -5441,20 +5441,20 @@ "typeString": "address payable" } }, - "functionReturnParameters": 3678, - "id": 3693, + "functionReturnParameters": 3709, + "id": 3724, "nodeType": "Return", "src": "7946:55:19" } ] }, "documentation": { - "id": 3670, + "id": 3701, "nodeType": "StructuredDocumentation", "src": "7702:141:19", "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." }, - "id": 3695, + "id": 3726, "implemented": true, "kind": "function", "modifiers": [], @@ -5462,33 +5462,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3675, + "id": 3706, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3672, + "id": 3703, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3695, + "scope": 3726, "src": "7861:28:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" }, "typeName": { "contractScope": null, - "id": 3671, + "id": 3702, "name": "UintToAddressMap", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3550, + "referencedDeclaration": 3581, "src": "7861:16:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" } }, @@ -5497,12 +5497,12 @@ }, { "constant": false, - "id": 3674, + "id": 3705, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3695, + "scope": 3726, "src": "7891:11:19", "stateVariable": false, "storageLocation": "default", @@ -5511,7 +5511,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3673, + "id": 3704, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7891:7:19", @@ -5527,17 +5527,17 @@ "src": "7860:43:19" }, "returnParameters": { - "id": 3678, + "id": 3709, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3677, + "id": 3708, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3695, + "scope": 3726, "src": "7927:7:19", "stateVariable": false, "storageLocation": "default", @@ -5546,7 +5546,7 @@ "typeString": "address" }, "typeName": { - "id": 3676, + "id": 3707, "name": "address", "nodeType": "ElementaryTypeName", "src": "7927:7:19", @@ -5562,7 +5562,7 @@ ], "src": "7926:9:19" }, - "scope": 3725, + "scope": 3756, "src": "7848:160:19", "stateMutability": "view", "virtual": false, @@ -5570,7 +5570,7 @@ }, { "body": { - "id": 3723, + "id": 3754, "nodeType": "Block", "src": "8231:86:19", "statements": [ @@ -5588,28 +5588,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3712, + "id": 3743, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3698, + "referencedDeclaration": 3729, "src": "8269:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" } }, - "id": 3713, + "id": 3744, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3549, + "referencedDeclaration": 3580, "src": "8269:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" } }, @@ -5618,11 +5618,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3716, + "id": 3747, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3700, + "referencedDeclaration": 3731, "src": "8289:3:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5637,7 +5637,7 @@ "typeString": "uint256" } ], - "id": 3715, + "id": 3746, "isConstant": false, "isLValue": false, "isPure": true, @@ -5649,7 +5649,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 3714, + "id": 3745, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "8281:7:19", @@ -5659,7 +5659,7 @@ } } }, - "id": 3717, + "id": 3748, "isConstant": false, "isLValue": false, "isPure": false, @@ -5676,11 +5676,11 @@ }, { "argumentTypes": null, - "id": 3718, + "id": 3749, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3702, + "referencedDeclaration": 3733, "src": "8295:12:19", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -5691,7 +5691,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" }, { @@ -5703,21 +5703,21 @@ "typeString": "string memory" } ], - "id": 3711, + "id": 3742, "name": "_get", "nodeType": "Identifier", "overloadedDeclarations": [ - 3512, - 3547 + 3543, + 3578 ], - "referencedDeclaration": 3547, + "referencedDeclaration": 3578, "src": "8264:4:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3286_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3317_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)" } }, - "id": 3719, + "id": 3750, "isConstant": false, "isLValue": false, "isPure": false, @@ -5740,7 +5740,7 @@ "typeString": "bytes32" } ], - "id": 3710, + "id": 3741, "isConstant": false, "isLValue": false, "isPure": true, @@ -5752,7 +5752,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 3709, + "id": 3740, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8256:7:19", @@ -5762,7 +5762,7 @@ } } }, - "id": 3720, + "id": 3751, "isConstant": false, "isLValue": false, "isPure": false, @@ -5785,7 +5785,7 @@ "typeString": "uint256" } ], - "id": 3708, + "id": 3739, "isConstant": false, "isLValue": false, "isPure": true, @@ -5797,7 +5797,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 3707, + "id": 3738, "name": "address", "nodeType": "ElementaryTypeName", "src": "8248:7:19", @@ -5807,7 +5807,7 @@ } } }, - "id": 3721, + "id": 3752, "isConstant": false, "isLValue": false, "isPure": false, @@ -5822,20 +5822,20 @@ "typeString": "address payable" } }, - "functionReturnParameters": 3706, - "id": 3722, + "functionReturnParameters": 3737, + "id": 3753, "nodeType": "Return", "src": "8241:69:19" } ] }, "documentation": { - "id": 3696, + "id": 3727, "nodeType": "StructuredDocumentation", "src": "8014:96:19", "text": " @dev Same as {get}, with a custom error message when `key` is not in the map." }, - "id": 3724, + "id": 3755, "implemented": true, "kind": "function", "modifiers": [], @@ -5843,33 +5843,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3703, + "id": 3734, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3698, + "id": 3729, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3724, + "scope": 3755, "src": "8128:28:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" }, "typeName": { "contractScope": null, - "id": 3697, + "id": 3728, "name": "UintToAddressMap", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3550, + "referencedDeclaration": 3581, "src": "8128:16:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" } }, @@ -5878,12 +5878,12 @@ }, { "constant": false, - "id": 3700, + "id": 3731, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3724, + "scope": 3755, "src": "8158:11:19", "stateVariable": false, "storageLocation": "default", @@ -5892,7 +5892,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3699, + "id": 3730, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8158:7:19", @@ -5906,12 +5906,12 @@ }, { "constant": false, - "id": 3702, + "id": 3733, "mutability": "mutable", "name": "errorMessage", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3724, + "scope": 3755, "src": "8171:26:19", "stateVariable": false, "storageLocation": "memory", @@ -5920,7 +5920,7 @@ "typeString": "string" }, "typeName": { - "id": 3701, + "id": 3732, "name": "string", "nodeType": "ElementaryTypeName", "src": "8171:6:19", @@ -5936,17 +5936,17 @@ "src": "8127:71:19" }, "returnParameters": { - "id": 3706, + "id": 3737, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3705, + "id": 3736, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3724, + "scope": 3755, "src": "8222:7:19", "stateVariable": false, "storageLocation": "default", @@ -5955,7 +5955,7 @@ "typeString": "address" }, "typeName": { - "id": 3704, + "id": 3735, "name": "address", "nodeType": "ElementaryTypeName", "src": "8222:7:19", @@ -5971,14 +5971,14 @@ ], "src": "8221:9:19" }, - "scope": 3725, + "scope": 3756, "src": "8115:202:19", "stateMutability": "view", "virtual": false, "visibility": "internal" } ], - "scope": 3726, + "scope": 3757, "src": "764:7555:19" } ], @@ -5988,15 +5988,15 @@ "absolutePath": "@openzeppelin/contracts/utils/EnumerableMap.sol", "exportedSymbols": { "EnumerableMap": [ - 3725 + 3756 ] }, - "id": 3726, + "id": 3757, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 3272, + "id": 3303, "literals": [ "solidity", "^", @@ -6012,31 +6012,31 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 3273, + "id": 3304, "nodeType": "StructuredDocumentation", "src": "58:705:19", "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." }, "fullyImplemented": true, - "id": 3725, + "id": 3756, "linearizedBaseContracts": [ - 3725 + 3756 ], "name": "EnumerableMap", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "EnumerableMap.MapEntry", - "id": 3278, + "id": 3309, "members": [ { "constant": false, - "id": 3275, + "id": 3306, "mutability": "mutable", "name": "_key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3278, + "scope": 3309, "src": "1276:12:19", "stateVariable": false, "storageLocation": "default", @@ -6045,7 +6045,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3274, + "id": 3305, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1276:7:19", @@ -6059,12 +6059,12 @@ }, { "constant": false, - "id": 3277, + "id": 3308, "mutability": "mutable", "name": "_value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3278, + "scope": 3309, "src": "1298:14:19", "stateVariable": false, "storageLocation": "default", @@ -6073,7 +6073,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3276, + "id": 3307, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1298:7:19", @@ -6088,48 +6088,48 @@ ], "name": "MapEntry", "nodeType": "StructDefinition", - "scope": 3725, + "scope": 3756, "src": "1250:69:19", "visibility": "public" }, { "canonicalName": "EnumerableMap.Map", - "id": 3286, + "id": 3317, "members": [ { "constant": false, - "id": 3281, + "id": 3312, "mutability": "mutable", "name": "_entries", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3286, + "scope": 3317, "src": "1388:19:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage_ptr", "typeString": "struct EnumerableMap.MapEntry[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 3279, + "id": 3310, "name": "MapEntry", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3278, + "referencedDeclaration": 3309, "src": "1388:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage_ptr", "typeString": "struct EnumerableMap.MapEntry" } }, - "id": 3280, + "id": 3311, "length": null, "nodeType": "ArrayTypeName", "src": "1388:10:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage_ptr", "typeString": "struct EnumerableMap.MapEntry[]" } }, @@ -6138,12 +6138,12 @@ }, { "constant": false, - "id": 3285, + "id": 3316, "mutability": "mutable", "name": "_indexes", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3286, + "scope": 3317, "src": "1557:37:19", "stateVariable": false, "storageLocation": "default", @@ -6152,9 +6152,9 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 3284, + "id": 3315, "keyType": { - "id": 3282, + "id": 3313, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1566:7:19", @@ -6170,7 +6170,7 @@ "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 3283, + "id": 3314, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1577:7:19", @@ -6186,29 +6186,29 @@ ], "name": "Map", "nodeType": "StructDefinition", - "scope": 3725, + "scope": 3756, "src": "1325:276:19", "visibility": "public" }, { "body": { - "id": 3347, + "id": 3378, "nodeType": "Block", "src": "1910:596:19", "statements": [ { "assignments": [ - 3299 + 3330 ], "declarations": [ { "constant": false, - "id": 3299, + "id": 3330, "mutability": "mutable", "name": "keyIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3347, + "scope": 3378, "src": "2018:16:19", "stateVariable": false, "storageLocation": "default", @@ -6217,7 +6217,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3298, + "id": 3329, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2018:7:19", @@ -6230,46 +6230,46 @@ "visibility": "internal" } ], - "id": 3304, + "id": 3335, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3300, + "id": 3331, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, + "referencedDeclaration": 3320, "src": "2037:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3301, + "id": 3332, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, + "referencedDeclaration": 3316, "src": "2037:12:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3303, + "id": 3334, "indexExpression": { "argumentTypes": null, - "id": 3302, + "id": 3333, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3291, + "referencedDeclaration": 3322, "src": "2050:3:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6297,18 +6297,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3307, + "id": 3338, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3305, + "id": 3336, "name": "keyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3299, + "referencedDeclaration": 3330, "src": "2069:8:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6320,7 +6320,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3306, + "id": 3337, "isConstant": false, "isLValue": false, "isPure": true, @@ -6342,14 +6342,14 @@ } }, "falseBody": { - "id": 3345, + "id": 3376, "nodeType": "Block", "src": "2408:92:19", "statements": [ { "expression": { "argumentTypes": null, - "id": 3341, + "id": 3372, "isConstant": false, "isLValue": false, "isPure": false, @@ -6362,50 +6362,50 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3332, + "id": 3363, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, + "referencedDeclaration": 3320, "src": "2422:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3337, + "id": 3368, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "2422:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3338, + "id": 3369, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3336, + "id": 3367, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3334, + "id": 3365, "name": "keyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3299, + "referencedDeclaration": 3330, "src": "2435:8:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6417,7 +6417,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 3335, + "id": 3366, "isConstant": false, "isLValue": false, "isPure": true, @@ -6445,18 +6445,18 @@ "nodeType": "IndexAccess", "src": "2422:26:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage", "typeString": "struct EnumerableMap.MapEntry storage ref" } }, - "id": 3339, + "id": 3370, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "_value", "nodeType": "MemberAccess", - "referencedDeclaration": 3277, + "referencedDeclaration": 3308, "src": "2422:33:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6467,11 +6467,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3340, + "id": 3371, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3293, + "referencedDeclaration": 3324, "src": "2458:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6484,7 +6484,7 @@ "typeString": "bytes32" } }, - "id": 3342, + "id": 3373, "nodeType": "ExpressionStatement", "src": "2422:41:19" }, @@ -6492,7 +6492,7 @@ "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 3343, + "id": 3374, "isConstant": false, "isLValue": false, "isPure": true, @@ -6507,18 +6507,18 @@ }, "value": "false" }, - "functionReturnParameters": 3297, - "id": 3344, + "functionReturnParameters": 3328, + "id": 3375, "nodeType": "Return", "src": "2477:12:19" } ] }, - "id": 3346, + "id": 3377, "nodeType": "IfStatement", "src": "2065:435:19", "trueBody": { - "id": 3331, + "id": 3362, "nodeType": "Block", "src": "2084:318:19", "statements": [ @@ -6531,11 +6531,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3314, + "id": 3345, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3291, + "referencedDeclaration": 3322, "src": "2170:3:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6544,11 +6544,11 @@ }, { "argumentTypes": null, - "id": 3315, + "id": 3346, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3293, + "referencedDeclaration": 3324, "src": "2183:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6567,18 +6567,18 @@ "typeString": "bytes32" } ], - "id": 3313, + "id": 3344, "name": "MapEntry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3278, + "referencedDeclaration": 3309, "src": "2153:8:19", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_MapEntry_$3278_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_MapEntry_$3309_storage_ptr_$", "typeString": "type(struct EnumerableMap.MapEntry storage pointer)" } }, - "id": 3316, + "id": 3347, "isConstant": false, "isLValue": false, "isPure": false, @@ -6592,7 +6592,7 @@ "src": "2153:38:19", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_memory_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_memory_ptr", "typeString": "struct EnumerableMap.MapEntry memory" } } @@ -6600,7 +6600,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_MapEntry_$3278_memory_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_memory_ptr", "typeString": "struct EnumerableMap.MapEntry memory" } ], @@ -6608,32 +6608,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3308, + "id": 3339, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, + "referencedDeclaration": 3320, "src": "2135:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3311, + "id": 3342, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "2135:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3312, + "id": 3343, "isConstant": false, "isLValue": false, "isPure": false, @@ -6643,11 +6643,11 @@ "referencedDeclaration": null, "src": "2135:17:19", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_MapEntry_$3278_storage_$returns$__$", + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_MapEntry_$3309_storage_$returns$__$", "typeString": "function (struct EnumerableMap.MapEntry storage ref)" } }, - "id": 3317, + "id": 3348, "isConstant": false, "isLValue": false, "isPure": false, @@ -6662,14 +6662,14 @@ "typeString": "tuple()" } }, - "id": 3318, + "id": 3349, "nodeType": "ExpressionStatement", "src": "2135:57:19" }, { "expression": { "argumentTypes": null, - "id": 3327, + "id": 3358, "isConstant": false, "isLValue": false, "isPure": false, @@ -6680,39 +6680,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3319, + "id": 3350, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, + "referencedDeclaration": 3320, "src": "2327:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3322, + "id": 3353, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, + "referencedDeclaration": 3316, "src": "2327:12:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3323, + "id": 3354, "indexExpression": { "argumentTypes": null, - "id": 3321, + "id": 3352, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3291, + "referencedDeclaration": 3322, "src": "2340:3:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6738,32 +6738,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3324, + "id": 3355, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, + "referencedDeclaration": 3320, "src": "2347:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3325, + "id": 3356, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "2347:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3326, + "id": 3357, "isConstant": false, "isLValue": false, "isPure": false, @@ -6783,7 +6783,7 @@ "typeString": "uint256" } }, - "id": 3328, + "id": 3359, "nodeType": "ExpressionStatement", "src": "2327:39:19" }, @@ -6791,7 +6791,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3329, + "id": 3360, "isConstant": false, "isLValue": false, "isPure": true, @@ -6806,8 +6806,8 @@ }, "value": "true" }, - "functionReturnParameters": 3297, - "id": 3330, + "functionReturnParameters": 3328, + "id": 3361, "nodeType": "Return", "src": "2380:11:19" } @@ -6817,12 +6817,12 @@ ] }, "documentation": { - "id": 3287, + "id": 3318, "nodeType": "StructuredDocumentation", "src": "1607:216:19", "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." }, - "id": 3348, + "id": 3379, "implemented": true, "kind": "function", "modifiers": [], @@ -6830,33 +6830,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3294, + "id": 3325, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3289, + "id": 3320, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3348, + "scope": 3379, "src": "1842:15:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" }, "typeName": { "contractScope": null, - "id": 3288, + "id": 3319, "name": "Map", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3286, + "referencedDeclaration": 3317, "src": "1842:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" } }, @@ -6865,12 +6865,12 @@ }, { "constant": false, - "id": 3291, + "id": 3322, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3348, + "scope": 3379, "src": "1859:11:19", "stateVariable": false, "storageLocation": "default", @@ -6879,7 +6879,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3290, + "id": 3321, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1859:7:19", @@ -6893,12 +6893,12 @@ }, { "constant": false, - "id": 3293, + "id": 3324, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3348, + "scope": 3379, "src": "1872:13:19", "stateVariable": false, "storageLocation": "default", @@ -6907,7 +6907,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3292, + "id": 3323, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1872:7:19", @@ -6923,17 +6923,17 @@ "src": "1841:45:19" }, "returnParameters": { - "id": 3297, + "id": 3328, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3296, + "id": 3327, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3348, + "scope": 3379, "src": "1904:4:19", "stateVariable": false, "storageLocation": "default", @@ -6942,7 +6942,7 @@ "typeString": "bool" }, "typeName": { - "id": 3295, + "id": 3326, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1904:4:19", @@ -6957,7 +6957,7 @@ ], "src": "1903:6:19" }, - "scope": 3725, + "scope": 3756, "src": "1828:678:19", "stateMutability": "nonpayable", "virtual": false, @@ -6965,23 +6965,23 @@ }, { "body": { - "id": 3428, + "id": 3459, "nodeType": "Block", "src": "2744:1447:19", "statements": [ { "assignments": [ - 3359 + 3390 ], "declarations": [ { "constant": false, - "id": 3359, + "id": 3390, "mutability": "mutable", "name": "keyIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3428, + "scope": 3459, "src": "2852:16:19", "stateVariable": false, "storageLocation": "default", @@ -6990,7 +6990,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3358, + "id": 3389, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2852:7:19", @@ -7003,46 +7003,46 @@ "visibility": "internal" } ], - "id": 3364, + "id": 3395, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3360, + "id": 3391, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3351, + "referencedDeclaration": 3382, "src": "2871:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3361, + "id": 3392, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, + "referencedDeclaration": 3316, "src": "2871:12:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3363, + "id": 3394, "indexExpression": { "argumentTypes": null, - "id": 3362, + "id": 3393, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3353, + "referencedDeclaration": 3384, "src": "2884:3:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -7070,18 +7070,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3367, + "id": 3398, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3365, + "id": 3396, "name": "keyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3359, + "referencedDeclaration": 3390, "src": "2903:8:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7093,7 +7093,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3366, + "id": 3397, "isConstant": false, "isLValue": false, "isPure": true, @@ -7115,7 +7115,7 @@ } }, "falseBody": { - "id": 3426, + "id": 3457, "nodeType": "Block", "src": "4148:37:19", "statements": [ @@ -7123,7 +7123,7 @@ "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 3424, + "id": 3455, "isConstant": false, "isLValue": false, "isPure": true, @@ -7138,34 +7138,34 @@ }, "value": "false" }, - "functionReturnParameters": 3357, - "id": 3425, + "functionReturnParameters": 3388, + "id": 3456, "nodeType": "Return", "src": "4162:12:19" } ] }, - "id": 3427, + "id": 3458, "nodeType": "IfStatement", "src": "2899:1286:19", "trueBody": { - "id": 3423, + "id": 3454, "nodeType": "Block", "src": "2918:1224:19", "statements": [ { "assignments": [ - 3369 + 3400 ], "declarations": [ { "constant": false, - "id": 3369, + "id": 3400, "mutability": "mutable", "name": "toDeleteIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3423, + "scope": 3454, "src": "3259:21:19", "stateVariable": false, "storageLocation": "default", @@ -7174,7 +7174,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3368, + "id": 3399, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3259:7:19", @@ -7187,25 +7187,25 @@ "visibility": "internal" } ], - "id": 3373, + "id": 3404, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3372, + "id": 3403, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3370, + "id": 3401, "name": "keyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3359, + "referencedDeclaration": 3390, "src": "3283:8:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7217,7 +7217,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 3371, + "id": 3402, "isConstant": false, "isLValue": false, "isPure": true, @@ -7243,17 +7243,17 @@ }, { "assignments": [ - 3375 + 3406 ], "declarations": [ { "constant": false, - "id": 3375, + "id": 3406, "mutability": "mutable", "name": "lastIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3423, + "scope": 3454, "src": "3309:17:19", "stateVariable": false, "storageLocation": "default", @@ -7262,7 +7262,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3374, + "id": 3405, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3309:7:19", @@ -7275,14 +7275,14 @@ "visibility": "internal" } ], - "id": 3381, + "id": 3412, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3380, + "id": 3411, "isConstant": false, "isLValue": false, "isPure": false, @@ -7293,32 +7293,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3376, + "id": 3407, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3351, + "referencedDeclaration": 3382, "src": "3329:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3377, + "id": 3408, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "3329:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3378, + "id": 3409, "isConstant": false, "isLValue": false, "isPure": false, @@ -7337,7 +7337,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 3379, + "id": 3410, "isConstant": false, "isLValue": false, "isPure": true, @@ -7363,33 +7363,33 @@ }, { "assignments": [ - 3383 + 3414 ], "declarations": [ { "constant": false, - "id": 3383, + "id": 3414, "mutability": "mutable", "name": "lastEntry", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3423, + "scope": 3454, "src": "3592:26:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage_ptr", "typeString": "struct EnumerableMap.MapEntry" }, "typeName": { "contractScope": null, - "id": 3382, + "id": 3413, "name": "MapEntry", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3278, + "referencedDeclaration": 3309, "src": "3592:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage_ptr", "typeString": "struct EnumerableMap.MapEntry" } }, @@ -7397,46 +7397,46 @@ "visibility": "internal" } ], - "id": 3388, + "id": 3419, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3384, + "id": 3415, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3351, + "referencedDeclaration": 3382, "src": "3621:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3385, + "id": 3416, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "3621:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3387, + "id": 3418, "indexExpression": { "argumentTypes": null, - "id": 3386, + "id": 3417, "name": "lastIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3375, + "referencedDeclaration": 3406, "src": "3634:9:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7450,7 +7450,7 @@ "nodeType": "IndexAccess", "src": "3621:23:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage", "typeString": "struct EnumerableMap.MapEntry storage ref" } }, @@ -7460,7 +7460,7 @@ { "expression": { "argumentTypes": null, - "id": 3395, + "id": 3426, "isConstant": false, "isLValue": false, "isPure": false, @@ -7471,39 +7471,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3389, + "id": 3420, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3351, + "referencedDeclaration": 3382, "src": "3736:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3392, + "id": 3423, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "3736:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3393, + "id": 3424, "indexExpression": { "argumentTypes": null, - "id": 3391, + "id": 3422, "name": "toDeleteIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3369, + "referencedDeclaration": 3400, "src": "3749:13:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7517,7 +7517,7 @@ "nodeType": "IndexAccess", "src": "3736:27:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage", "typeString": "struct EnumerableMap.MapEntry storage ref" } }, @@ -7525,31 +7525,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3394, + "id": 3425, "name": "lastEntry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, + "referencedDeclaration": 3414, "src": "3766:9:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage_ptr", "typeString": "struct EnumerableMap.MapEntry storage pointer" } }, "src": "3736:39:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage", "typeString": "struct EnumerableMap.MapEntry storage ref" } }, - "id": 3396, + "id": 3427, "nodeType": "ExpressionStatement", "src": "3736:39:19" }, { "expression": { "argumentTypes": null, - "id": 3406, + "id": 3437, "isConstant": false, "isLValue": false, "isPure": false, @@ -7560,55 +7560,55 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3397, + "id": 3428, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3351, + "referencedDeclaration": 3382, "src": "3841:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3401, + "id": 3432, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, + "referencedDeclaration": 3316, "src": "3841:12:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3402, + "id": 3433, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3399, + "id": 3430, "name": "lastEntry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, + "referencedDeclaration": 3414, "src": "3854:9:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage_ptr", "typeString": "struct EnumerableMap.MapEntry storage pointer" } }, - "id": 3400, + "id": 3431, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_key", "nodeType": "MemberAccess", - "referencedDeclaration": 3275, + "referencedDeclaration": 3306, "src": "3854:14:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -7634,18 +7634,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3405, + "id": 3436, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3403, + "id": 3434, "name": "toDeleteIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3369, + "referencedDeclaration": 3400, "src": "3872:13:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7657,7 +7657,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 3404, + "id": 3435, "isConstant": false, "isLValue": false, "isPure": true, @@ -7684,7 +7684,7 @@ "typeString": "uint256" } }, - "id": 3407, + "id": 3438, "nodeType": "ExpressionStatement", "src": "3841:48:19" }, @@ -7698,32 +7698,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3408, + "id": 3439, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3351, + "referencedDeclaration": 3382, "src": "3995:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3411, + "id": 3442, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "3995:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3412, + "id": 3443, "isConstant": false, "isLValue": false, "isPure": false, @@ -7737,7 +7737,7 @@ "typeString": "function ()" } }, - "id": 3413, + "id": 3444, "isConstant": false, "isLValue": false, "isPure": false, @@ -7752,14 +7752,14 @@ "typeString": "tuple()" } }, - "id": 3414, + "id": 3445, "nodeType": "ExpressionStatement", "src": "3995:18:19" }, { "expression": { "argumentTypes": null, - "id": 3419, + "id": 3450, "isConstant": false, "isLValue": false, "isPure": false, @@ -7774,39 +7774,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3415, + "id": 3446, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3351, + "referencedDeclaration": 3382, "src": "4088:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3416, + "id": 3447, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, + "referencedDeclaration": 3316, "src": "4088:12:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3418, + "id": 3449, "indexExpression": { "argumentTypes": null, - "id": 3417, + "id": 3448, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3353, + "referencedDeclaration": 3384, "src": "4101:3:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -7829,7 +7829,7 @@ "typeString": "tuple()" } }, - "id": 3420, + "id": 3451, "nodeType": "ExpressionStatement", "src": "4081:24:19" }, @@ -7837,7 +7837,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3421, + "id": 3452, "isConstant": false, "isLValue": false, "isPure": true, @@ -7852,8 +7852,8 @@ }, "value": "true" }, - "functionReturnParameters": 3357, - "id": 3422, + "functionReturnParameters": 3388, + "id": 3453, "nodeType": "Return", "src": "4120:11:19" } @@ -7863,12 +7863,12 @@ ] }, "documentation": { - "id": 3349, + "id": 3380, "nodeType": "StructuredDocumentation", "src": "2512:157:19", "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." }, - "id": 3429, + "id": 3460, "implemented": true, "kind": "function", "modifiers": [], @@ -7876,33 +7876,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3354, + "id": 3385, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3351, + "id": 3382, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3429, + "scope": 3460, "src": "2691:15:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" }, "typeName": { "contractScope": null, - "id": 3350, + "id": 3381, "name": "Map", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3286, + "referencedDeclaration": 3317, "src": "2691:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" } }, @@ -7911,12 +7911,12 @@ }, { "constant": false, - "id": 3353, + "id": 3384, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3429, + "scope": 3460, "src": "2708:11:19", "stateVariable": false, "storageLocation": "default", @@ -7925,7 +7925,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3352, + "id": 3383, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2708:7:19", @@ -7941,17 +7941,17 @@ "src": "2690:30:19" }, "returnParameters": { - "id": 3357, + "id": 3388, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3356, + "id": 3387, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3429, + "scope": 3460, "src": "2738:4:19", "stateVariable": false, "storageLocation": "default", @@ -7960,7 +7960,7 @@ "typeString": "bool" }, "typeName": { - "id": 3355, + "id": 3386, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2738:4:19", @@ -7975,7 +7975,7 @@ ], "src": "2737:6:19" }, - "scope": 3725, + "scope": 3756, "src": "2674:1517:19", "stateMutability": "nonpayable", "virtual": false, @@ -7983,7 +7983,7 @@ }, { "body": { - "id": 3446, + "id": 3477, "nodeType": "Block", "src": "4347:46:19", "statements": [ @@ -7994,7 +7994,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3444, + "id": 3475, "isConstant": false, "isLValue": false, "isPure": false, @@ -8005,39 +8005,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3439, + "id": 3470, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3432, + "referencedDeclaration": 3463, "src": "4364:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3440, + "id": 3471, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, + "referencedDeclaration": 3316, "src": "4364:12:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3442, + "id": 3473, "indexExpression": { "argumentTypes": null, - "id": 3441, + "id": 3472, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3434, + "referencedDeclaration": 3465, "src": "4377:3:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -8060,7 +8060,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3443, + "id": 3474, "isConstant": false, "isLValue": false, "isPure": true, @@ -8081,20 +8081,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 3438, - "id": 3445, + "functionReturnParameters": 3469, + "id": 3476, "nodeType": "Return", "src": "4357:29:19" } ] }, "documentation": { - "id": 3430, + "id": 3461, "nodeType": "StructuredDocumentation", "src": "4197:68:19", "text": " @dev Returns true if the key is in the map. O(1)." }, - "id": 3447, + "id": 3478, "implemented": true, "kind": "function", "modifiers": [], @@ -8102,33 +8102,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3435, + "id": 3466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3432, + "id": 3463, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3447, + "scope": 3478, "src": "4289:15:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" }, "typeName": { "contractScope": null, - "id": 3431, + "id": 3462, "name": "Map", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3286, + "referencedDeclaration": 3317, "src": "4289:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" } }, @@ -8137,12 +8137,12 @@ }, { "constant": false, - "id": 3434, + "id": 3465, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3447, + "scope": 3478, "src": "4306:11:19", "stateVariable": false, "storageLocation": "default", @@ -8151,7 +8151,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3433, + "id": 3464, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4306:7:19", @@ -8167,17 +8167,17 @@ "src": "4288:30:19" }, "returnParameters": { - "id": 3438, + "id": 3469, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3437, + "id": 3468, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3447, + "scope": 3478, "src": "4341:4:19", "stateVariable": false, "storageLocation": "default", @@ -8186,7 +8186,7 @@ "typeString": "bool" }, "typeName": { - "id": 3436, + "id": 3467, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4341:4:19", @@ -8201,7 +8201,7 @@ ], "src": "4340:6:19" }, - "scope": 3725, + "scope": 3756, "src": "4270:123:19", "stateMutability": "view", "virtual": false, @@ -8209,7 +8209,7 @@ }, { "body": { - "id": 3459, + "id": 3490, "nodeType": "Block", "src": "4548:43:19", "statements": [ @@ -8220,32 +8220,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3455, + "id": 3486, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3450, + "referencedDeclaration": 3481, "src": "4565:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3456, + "id": 3487, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "4565:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3457, + "id": 3488, "isConstant": false, "isLValue": false, "isPure": false, @@ -8259,20 +8259,20 @@ "typeString": "uint256" } }, - "functionReturnParameters": 3454, - "id": 3458, + "functionReturnParameters": 3485, + "id": 3489, "nodeType": "Return", "src": "4558:26:19" } ] }, "documentation": { - "id": 3448, + "id": 3479, "nodeType": "StructuredDocumentation", "src": "4399:79:19", "text": " @dev Returns the number of key-value pairs in the map. O(1)." }, - "id": 3460, + "id": 3491, "implemented": true, "kind": "function", "modifiers": [], @@ -8280,33 +8280,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3451, + "id": 3482, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3450, + "id": 3481, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3460, + "scope": 3491, "src": "4500:15:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" }, "typeName": { "contractScope": null, - "id": 3449, + "id": 3480, "name": "Map", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3286, + "referencedDeclaration": 3317, "src": "4500:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" } }, @@ -8317,17 +8317,17 @@ "src": "4499:17:19" }, "returnParameters": { - "id": 3454, + "id": 3485, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3453, + "id": 3484, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3460, + "scope": 3491, "src": "4539:7:19", "stateVariable": false, "storageLocation": "default", @@ -8336,7 +8336,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3452, + "id": 3483, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4539:7:19", @@ -8351,7 +8351,7 @@ ], "src": "4538:9:19" }, - "scope": 3725, + "scope": 3756, "src": "4483:108:19", "stateMutability": "view", "virtual": false, @@ -8359,7 +8359,7 @@ }, { "body": { - "id": 3494, + "id": 3525, "nodeType": "Block", "src": "5019:189:19", "statements": [ @@ -8373,7 +8373,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3477, + "id": 3508, "isConstant": false, "isLValue": false, "isPure": false, @@ -8384,32 +8384,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3473, + "id": 3504, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3463, + "referencedDeclaration": 3494, "src": "5037:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3474, + "id": 3505, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "5037:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3475, + "id": 3506, "isConstant": false, "isLValue": false, "isPure": false, @@ -8427,11 +8427,11 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 3476, + "id": 3507, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3465, + "referencedDeclaration": 3496, "src": "5059:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8447,7 +8447,7 @@ { "argumentTypes": null, "hexValue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", - "id": 3478, + "id": 3509, "isConstant": false, "isLValue": false, "isPure": true, @@ -8474,7 +8474,7 @@ "typeString": "literal_string \"EnumerableMap: index out of bounds\"" } ], - "id": 3472, + "id": 3503, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -8488,7 +8488,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 3479, + "id": 3510, "isConstant": false, "isLValue": false, "isPure": false, @@ -8503,39 +8503,39 @@ "typeString": "tuple()" } }, - "id": 3480, + "id": 3511, "nodeType": "ExpressionStatement", "src": "5029:74:19" }, { "assignments": [ - 3482 + 3513 ], "declarations": [ { "constant": false, - "id": 3482, + "id": 3513, "mutability": "mutable", "name": "entry", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3494, + "scope": 3525, "src": "5114:22:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage_ptr", "typeString": "struct EnumerableMap.MapEntry" }, "typeName": { "contractScope": null, - "id": 3481, + "id": 3512, "name": "MapEntry", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3278, + "referencedDeclaration": 3309, "src": "5114:8:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage_ptr", "typeString": "struct EnumerableMap.MapEntry" } }, @@ -8543,46 +8543,46 @@ "visibility": "internal" } ], - "id": 3487, + "id": 3518, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3483, + "id": 3514, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3463, + "referencedDeclaration": 3494, "src": "5139:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3484, + "id": 3515, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "5139:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3486, + "id": 3517, "indexExpression": { "argumentTypes": null, - "id": 3485, + "id": 3516, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3465, + "referencedDeclaration": 3496, "src": "5152:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8596,7 +8596,7 @@ "nodeType": "IndexAccess", "src": "5139:19:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage", "typeString": "struct EnumerableMap.MapEntry storage ref" } }, @@ -8611,25 +8611,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3488, + "id": 3519, "name": "entry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3482, + "referencedDeclaration": 3513, "src": "5176:5:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage_ptr", "typeString": "struct EnumerableMap.MapEntry storage pointer" } }, - "id": 3489, + "id": 3520, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_key", "nodeType": "MemberAccess", - "referencedDeclaration": 3275, + "referencedDeclaration": 3306, "src": "5176:10:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -8640,25 +8640,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3490, + "id": 3521, "name": "entry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3482, + "referencedDeclaration": 3513, "src": "5188:5:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage_ptr", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage_ptr", "typeString": "struct EnumerableMap.MapEntry storage pointer" } }, - "id": 3491, + "id": 3522, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_value", "nodeType": "MemberAccess", - "referencedDeclaration": 3277, + "referencedDeclaration": 3308, "src": "5188:12:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -8666,7 +8666,7 @@ } } ], - "id": 3492, + "id": 3523, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -8679,20 +8679,20 @@ "typeString": "tuple(bytes32,bytes32)" } }, - "functionReturnParameters": 3471, - "id": 3493, + "functionReturnParameters": 3502, + "id": 3524, "nodeType": "Return", "src": "5168:33:19" } ] }, "documentation": { - "id": 3461, + "id": 3492, "nodeType": "StructuredDocumentation", "src": "4596:333:19", "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." }, - "id": 3495, + "id": 3526, "implemented": true, "kind": "function", "modifiers": [], @@ -8700,33 +8700,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3466, + "id": 3497, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3463, + "id": 3494, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3495, + "scope": 3526, "src": "4947:15:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" }, "typeName": { "contractScope": null, - "id": 3462, + "id": 3493, "name": "Map", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3286, + "referencedDeclaration": 3317, "src": "4947:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" } }, @@ -8735,12 +8735,12 @@ }, { "constant": false, - "id": 3465, + "id": 3496, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3495, + "scope": 3526, "src": "4964:13:19", "stateVariable": false, "storageLocation": "default", @@ -8749,7 +8749,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3464, + "id": 3495, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4964:7:19", @@ -8765,17 +8765,17 @@ "src": "4946:32:19" }, "returnParameters": { - "id": 3471, + "id": 3502, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3468, + "id": 3499, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3495, + "scope": 3526, "src": "5001:7:19", "stateVariable": false, "storageLocation": "default", @@ -8784,7 +8784,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3467, + "id": 3498, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5001:7:19", @@ -8798,12 +8798,12 @@ }, { "constant": false, - "id": 3470, + "id": 3501, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3495, + "scope": 3526, "src": "5010:7:19", "stateVariable": false, "storageLocation": "default", @@ -8812,7 +8812,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3469, + "id": 3500, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5010:7:19", @@ -8827,7 +8827,7 @@ ], "src": "5000:18:19" }, - "scope": 3725, + "scope": 3756, "src": "4934:274:19", "stateMutability": "view", "virtual": false, @@ -8835,7 +8835,7 @@ }, { "body": { - "id": 3511, + "id": 3542, "nodeType": "Block", "src": "5435:72:19", "statements": [ @@ -8845,24 +8845,24 @@ "arguments": [ { "argumentTypes": null, - "id": 3506, + "id": 3537, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3498, + "referencedDeclaration": 3529, "src": "5457:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, { "argumentTypes": null, - "id": 3507, + "id": 3538, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3500, + "referencedDeclaration": 3531, "src": "5462:3:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -8872,7 +8872,7 @@ { "argumentTypes": null, "hexValue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", - "id": 3508, + "id": 3539, "isConstant": false, "isLValue": false, "isPure": true, @@ -8891,7 +8891,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" }, { @@ -8903,21 +8903,21 @@ "typeString": "literal_string \"EnumerableMap: nonexistent key\"" } ], - "id": 3505, + "id": 3536, "name": "_get", "nodeType": "Identifier", "overloadedDeclarations": [ - 3512, - 3547 + 3543, + 3578 ], - "referencedDeclaration": 3547, + "referencedDeclaration": 3578, "src": "5452:4:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3286_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3317_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)" } }, - "id": 3509, + "id": 3540, "isConstant": false, "isLValue": false, "isPure": false, @@ -8932,20 +8932,20 @@ "typeString": "bytes32" } }, - "functionReturnParameters": 3504, - "id": 3510, + "functionReturnParameters": 3535, + "id": 3541, "nodeType": "Return", "src": "5445:55:19" } ] }, "documentation": { - "id": 3496, + "id": 3527, "nodeType": "StructuredDocumentation", "src": "5214:141:19", "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." }, - "id": 3512, + "id": 3543, "implemented": true, "kind": "function", "modifiers": [], @@ -8953,33 +8953,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3501, + "id": 3532, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3498, + "id": 3529, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3512, + "scope": 3543, "src": "5374:15:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" }, "typeName": { "contractScope": null, - "id": 3497, + "id": 3528, "name": "Map", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3286, + "referencedDeclaration": 3317, "src": "5374:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" } }, @@ -8988,12 +8988,12 @@ }, { "constant": false, - "id": 3500, + "id": 3531, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3512, + "scope": 3543, "src": "5391:11:19", "stateVariable": false, "storageLocation": "default", @@ -9002,7 +9002,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3499, + "id": 3530, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5391:7:19", @@ -9018,17 +9018,17 @@ "src": "5373:30:19" }, "returnParameters": { - "id": 3504, + "id": 3535, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3503, + "id": 3534, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3512, + "scope": 3543, "src": "5426:7:19", "stateVariable": false, "storageLocation": "default", @@ -9037,7 +9037,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3502, + "id": 3533, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5426:7:19", @@ -9052,7 +9052,7 @@ ], "src": "5425:9:19" }, - "scope": 3725, + "scope": 3756, "src": "5360:147:19", "stateMutability": "view", "virtual": false, @@ -9060,23 +9060,23 @@ }, { "body": { - "id": 3546, + "id": 3577, "nodeType": "Block", "src": "5718:212:19", "statements": [ { "assignments": [ - 3525 + 3556 ], "declarations": [ { "constant": false, - "id": 3525, + "id": 3556, "mutability": "mutable", "name": "keyIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3546, + "scope": 3577, "src": "5728:16:19", "stateVariable": false, "storageLocation": "default", @@ -9085,7 +9085,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3524, + "id": 3555, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5728:7:19", @@ -9098,46 +9098,46 @@ "visibility": "internal" } ], - "id": 3530, + "id": 3561, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3526, + "id": 3557, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, + "referencedDeclaration": 3546, "src": "5747:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3527, + "id": 3558, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, + "referencedDeclaration": 3316, "src": "5747:12:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3529, + "id": 3560, "indexExpression": { "argumentTypes": null, - "id": 3528, + "id": 3559, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3517, + "referencedDeclaration": 3548, "src": "5760:3:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -9168,18 +9168,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3534, + "id": 3565, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3532, + "id": 3563, "name": "keyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, + "referencedDeclaration": 3556, "src": "5782:8:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9191,7 +9191,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3533, + "id": 3564, "isConstant": false, "isLValue": false, "isPure": true, @@ -9214,11 +9214,11 @@ }, { "argumentTypes": null, - "id": 3535, + "id": 3566, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, + "referencedDeclaration": 3550, "src": "5797:12:19", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -9237,7 +9237,7 @@ "typeString": "string memory" } ], - "id": 3531, + "id": 3562, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -9251,7 +9251,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 3536, + "id": 3567, "isConstant": false, "isLValue": false, "isPure": false, @@ -9266,7 +9266,7 @@ "typeString": "tuple()" } }, - "id": 3537, + "id": 3568, "nodeType": "ExpressionStatement", "src": "5774:36:19" }, @@ -9279,50 +9279,50 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3538, + "id": 3569, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, + "referencedDeclaration": 3546, "src": "5863:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map storage pointer" } }, - "id": 3539, + "id": 3570, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_entries", "nodeType": "MemberAccess", - "referencedDeclaration": 3281, + "referencedDeclaration": 3312, "src": "5863:12:19", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_MapEntry_$3278_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_MapEntry_$3309_storage_$dyn_storage", "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" } }, - "id": 3543, + "id": 3574, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3542, + "id": 3573, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3540, + "id": 3571, "name": "keyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, + "referencedDeclaration": 3556, "src": "5876:8:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9334,7 +9334,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 3541, + "id": 3572, "isConstant": false, "isLValue": false, "isPure": true, @@ -9362,38 +9362,38 @@ "nodeType": "IndexAccess", "src": "5863:26:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_MapEntry_$3278_storage", + "typeIdentifier": "t_struct$_MapEntry_$3309_storage", "typeString": "struct EnumerableMap.MapEntry storage ref" } }, - "id": 3544, + "id": 3575, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_value", "nodeType": "MemberAccess", - "referencedDeclaration": 3277, + "referencedDeclaration": 3308, "src": "5863:33:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 3523, - "id": 3545, + "functionReturnParameters": 3554, + "id": 3576, "nodeType": "Return", "src": "5856:40:19" } ] }, "documentation": { - "id": 3513, + "id": 3544, "nodeType": "StructuredDocumentation", "src": "5513:97:19", "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map." }, - "id": 3547, + "id": 3578, "implemented": true, "kind": "function", "modifiers": [], @@ -9401,33 +9401,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3520, + "id": 3551, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3515, + "id": 3546, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3547, + "scope": 3578, "src": "5629:15:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" }, "typeName": { "contractScope": null, - "id": 3514, + "id": 3545, "name": "Map", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3286, + "referencedDeclaration": 3317, "src": "5629:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" } }, @@ -9436,12 +9436,12 @@ }, { "constant": false, - "id": 3517, + "id": 3548, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3547, + "scope": 3578, "src": "5646:11:19", "stateVariable": false, "storageLocation": "default", @@ -9450,7 +9450,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3516, + "id": 3547, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5646:7:19", @@ -9464,12 +9464,12 @@ }, { "constant": false, - "id": 3519, + "id": 3550, "mutability": "mutable", "name": "errorMessage", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3547, + "scope": 3578, "src": "5659:26:19", "stateVariable": false, "storageLocation": "memory", @@ -9478,7 +9478,7 @@ "typeString": "string" }, "typeName": { - "id": 3518, + "id": 3549, "name": "string", "nodeType": "ElementaryTypeName", "src": "5659:6:19", @@ -9494,17 +9494,17 @@ "src": "5628:58:19" }, "returnParameters": { - "id": 3523, + "id": 3554, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3522, + "id": 3553, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3547, + "scope": 3578, "src": "5709:7:19", "stateVariable": false, "storageLocation": "default", @@ -9513,7 +9513,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3521, + "id": 3552, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5709:7:19", @@ -9528,7 +9528,7 @@ ], "src": "5708:9:19" }, - "scope": 3725, + "scope": 3756, "src": "5615:315:19", "stateMutability": "view", "virtual": false, @@ -9536,32 +9536,32 @@ }, { "canonicalName": "EnumerableMap.UintToAddressMap", - "id": 3550, + "id": 3581, "members": [ { "constant": false, - "id": 3549, + "id": 3580, "mutability": "mutable", "name": "_inner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3550, + "scope": 3581, "src": "5995:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" }, "typeName": { "contractScope": null, - "id": 3548, + "id": 3579, "name": "Map", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3286, + "referencedDeclaration": 3317, "src": "5995:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage_ptr", + "typeIdentifier": "t_struct$_Map_$3317_storage_ptr", "typeString": "struct EnumerableMap.Map" } }, @@ -9571,13 +9571,13 @@ ], "name": "UintToAddressMap", "nodeType": "StructDefinition", - "scope": 3725, + "scope": 3756, "src": "5961:51:19", "visibility": "public" }, { "body": { - "id": 3578, + "id": 3609, "nodeType": "Block", "src": "6334:79:19", "statements": [ @@ -9589,28 +9589,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3563, + "id": 3594, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3553, + "referencedDeclaration": 3584, "src": "6356:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" } }, - "id": 3564, + "id": 3595, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3549, + "referencedDeclaration": 3580, "src": "6356:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" } }, @@ -9619,11 +9619,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3567, + "id": 3598, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3555, + "referencedDeclaration": 3586, "src": "6376:3:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9638,7 +9638,7 @@ "typeString": "uint256" } ], - "id": 3566, + "id": 3597, "isConstant": false, "isLValue": false, "isPure": true, @@ -9650,7 +9650,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 3565, + "id": 3596, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6368:7:19", @@ -9660,7 +9660,7 @@ } } }, - "id": 3568, + "id": 3599, "isConstant": false, "isLValue": false, "isPure": false, @@ -9683,11 +9683,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3573, + "id": 3604, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3557, + "referencedDeclaration": 3588, "src": "6398:5:19", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9702,7 +9702,7 @@ "typeString": "address" } ], - "id": 3572, + "id": 3603, "isConstant": false, "isLValue": false, "isPure": true, @@ -9714,7 +9714,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 3571, + "id": 3602, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6390:7:19", @@ -9724,7 +9724,7 @@ } } }, - "id": 3574, + "id": 3605, "isConstant": false, "isLValue": false, "isPure": false, @@ -9747,7 +9747,7 @@ "typeString": "uint256" } ], - "id": 3570, + "id": 3601, "isConstant": false, "isLValue": false, "isPure": true, @@ -9759,7 +9759,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 3569, + "id": 3600, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6382:7:19", @@ -9769,7 +9769,7 @@ } } }, - "id": 3575, + "id": 3606, "isConstant": false, "isLValue": false, "isPure": false, @@ -9788,7 +9788,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" }, { @@ -9800,18 +9800,18 @@ "typeString": "bytes32" } ], - "id": 3562, + "id": 3593, "name": "_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3348, + "referencedDeclaration": 3379, "src": "6351:4:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$3286_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$3317_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)" } }, - "id": 3576, + "id": 3607, "isConstant": false, "isLValue": false, "isPure": false, @@ -9826,20 +9826,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 3561, - "id": 3577, + "functionReturnParameters": 3592, + "id": 3608, "nodeType": "Return", "src": "6344:62:19" } ] }, "documentation": { - "id": 3551, + "id": 3582, "nodeType": "StructuredDocumentation", "src": "6018:216:19", "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." }, - "id": 3579, + "id": 3610, "implemented": true, "kind": "function", "modifiers": [], @@ -9847,33 +9847,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3558, + "id": 3589, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3553, + "id": 3584, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3579, + "scope": 3610, "src": "6252:28:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" }, "typeName": { "contractScope": null, - "id": 3552, + "id": 3583, "name": "UintToAddressMap", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3550, + "referencedDeclaration": 3581, "src": "6252:16:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" } }, @@ -9882,12 +9882,12 @@ }, { "constant": false, - "id": 3555, + "id": 3586, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3579, + "scope": 3610, "src": "6282:11:19", "stateVariable": false, "storageLocation": "default", @@ -9896,7 +9896,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3554, + "id": 3585, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6282:7:19", @@ -9910,12 +9910,12 @@ }, { "constant": false, - "id": 3557, + "id": 3588, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3579, + "scope": 3610, "src": "6295:13:19", "stateVariable": false, "storageLocation": "default", @@ -9924,7 +9924,7 @@ "typeString": "address" }, "typeName": { - "id": 3556, + "id": 3587, "name": "address", "nodeType": "ElementaryTypeName", "src": "6295:7:19", @@ -9941,17 +9941,17 @@ "src": "6251:58:19" }, "returnParameters": { - "id": 3561, + "id": 3592, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3560, + "id": 3591, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3579, + "scope": 3610, "src": "6328:4:19", "stateVariable": false, "storageLocation": "default", @@ -9960,7 +9960,7 @@ "typeString": "bool" }, "typeName": { - "id": 3559, + "id": 3590, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6328:4:19", @@ -9975,7 +9975,7 @@ ], "src": "6327:6:19" }, - "scope": 3725, + "scope": 3756, "src": "6239:174:19", "stateMutability": "nonpayable", "virtual": false, @@ -9983,7 +9983,7 @@ }, { "body": { - "id": 3598, + "id": 3629, "nodeType": "Block", "src": "6655:57:19", "statements": [ @@ -9995,28 +9995,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3590, + "id": 3621, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3582, + "referencedDeclaration": 3613, "src": "6680:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" } }, - "id": 3591, + "id": 3622, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3549, + "referencedDeclaration": 3580, "src": "6680:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" } }, @@ -10025,11 +10025,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3594, + "id": 3625, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3584, + "referencedDeclaration": 3615, "src": "6700:3:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10044,7 +10044,7 @@ "typeString": "uint256" } ], - "id": 3593, + "id": 3624, "isConstant": false, "isLValue": false, "isPure": true, @@ -10056,7 +10056,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 3592, + "id": 3623, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6692:7:19", @@ -10066,7 +10066,7 @@ } } }, - "id": 3595, + "id": 3626, "isConstant": false, "isLValue": false, "isPure": false, @@ -10085,7 +10085,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" }, { @@ -10093,18 +10093,18 @@ "typeString": "bytes32" } ], - "id": 3589, + "id": 3620, "name": "_remove", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3429, + "referencedDeclaration": 3460, "src": "6672:7:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$3286_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$3317_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)" } }, - "id": 3596, + "id": 3627, "isConstant": false, "isLValue": false, "isPure": false, @@ -10119,20 +10119,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 3588, - "id": 3597, + "functionReturnParameters": 3619, + "id": 3628, "nodeType": "Return", "src": "6665:40:19" } ] }, "documentation": { - "id": 3580, + "id": 3611, "nodeType": "StructuredDocumentation", "src": "6419:148:19", "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." }, - "id": 3599, + "id": 3630, "implemented": true, "kind": "function", "modifiers": [], @@ -10140,33 +10140,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3585, + "id": 3616, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3582, + "id": 3613, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3599, + "scope": 3630, "src": "6588:28:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" }, "typeName": { "contractScope": null, - "id": 3581, + "id": 3612, "name": "UintToAddressMap", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3550, + "referencedDeclaration": 3581, "src": "6588:16:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" } }, @@ -10175,12 +10175,12 @@ }, { "constant": false, - "id": 3584, + "id": 3615, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3599, + "scope": 3630, "src": "6618:11:19", "stateVariable": false, "storageLocation": "default", @@ -10189,7 +10189,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3583, + "id": 3614, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6618:7:19", @@ -10205,17 +10205,17 @@ "src": "6587:43:19" }, "returnParameters": { - "id": 3588, + "id": 3619, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3587, + "id": 3618, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3599, + "scope": 3630, "src": "6649:4:19", "stateVariable": false, "storageLocation": "default", @@ -10224,7 +10224,7 @@ "typeString": "bool" }, "typeName": { - "id": 3586, + "id": 3617, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6649:4:19", @@ -10239,7 +10239,7 @@ ], "src": "6648:6:19" }, - "scope": 3725, + "scope": 3756, "src": "6572:140:19", "stateMutability": "nonpayable", "virtual": false, @@ -10247,7 +10247,7 @@ }, { "body": { - "id": 3618, + "id": 3649, "nodeType": "Block", "src": "6881:59:19", "statements": [ @@ -10259,28 +10259,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3610, + "id": 3641, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, + "referencedDeclaration": 3633, "src": "6908:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" } }, - "id": 3611, + "id": 3642, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3549, + "referencedDeclaration": 3580, "src": "6908:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" } }, @@ -10289,11 +10289,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3614, + "id": 3645, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3604, + "referencedDeclaration": 3635, "src": "6928:3:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10308,7 +10308,7 @@ "typeString": "uint256" } ], - "id": 3613, + "id": 3644, "isConstant": false, "isLValue": false, "isPure": true, @@ -10320,7 +10320,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 3612, + "id": 3643, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6920:7:19", @@ -10330,7 +10330,7 @@ } } }, - "id": 3615, + "id": 3646, "isConstant": false, "isLValue": false, "isPure": false, @@ -10349,7 +10349,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" }, { @@ -10357,18 +10357,18 @@ "typeString": "bytes32" } ], - "id": 3609, + "id": 3640, "name": "_contains", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3447, + "referencedDeclaration": 3478, "src": "6898:9:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3286_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3317_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)" } }, - "id": 3616, + "id": 3647, "isConstant": false, "isLValue": false, "isPure": false, @@ -10383,20 +10383,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 3608, - "id": 3617, + "functionReturnParameters": 3639, + "id": 3648, "nodeType": "Return", "src": "6891:42:19" } ] }, "documentation": { - "id": 3600, + "id": 3631, "nodeType": "StructuredDocumentation", "src": "6718:68:19", "text": " @dev Returns true if the key is in the map. O(1)." }, - "id": 3619, + "id": 3650, "implemented": true, "kind": "function", "modifiers": [], @@ -10404,33 +10404,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3605, + "id": 3636, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3602, + "id": 3633, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3619, + "scope": 3650, "src": "6809:28:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" }, "typeName": { "contractScope": null, - "id": 3601, + "id": 3632, "name": "UintToAddressMap", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3550, + "referencedDeclaration": 3581, "src": "6809:16:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" } }, @@ -10439,12 +10439,12 @@ }, { "constant": false, - "id": 3604, + "id": 3635, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3619, + "scope": 3650, "src": "6839:11:19", "stateVariable": false, "storageLocation": "default", @@ -10453,7 +10453,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3603, + "id": 3634, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6839:7:19", @@ -10469,17 +10469,17 @@ "src": "6808:43:19" }, "returnParameters": { - "id": 3608, + "id": 3639, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3607, + "id": 3638, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3619, + "scope": 3650, "src": "6875:4:19", "stateVariable": false, "storageLocation": "default", @@ -10488,7 +10488,7 @@ "typeString": "bool" }, "typeName": { - "id": 3606, + "id": 3637, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6875:4:19", @@ -10503,7 +10503,7 @@ ], "src": "6874:6:19" }, - "scope": 3725, + "scope": 3756, "src": "6791:149:19", "stateMutability": "view", "virtual": false, @@ -10511,7 +10511,7 @@ }, { "body": { - "id": 3632, + "id": 3663, "nodeType": "Block", "src": "7101:43:19", "statements": [ @@ -10523,28 +10523,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3628, + "id": 3659, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3622, + "referencedDeclaration": 3653, "src": "7126:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" } }, - "id": 3629, + "id": 3660, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3549, + "referencedDeclaration": 3580, "src": "7126:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" } } @@ -10552,22 +10552,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" } ], - "id": 3627, + "id": 3658, "name": "_length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3460, + "referencedDeclaration": 3491, "src": "7118:7:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3286_storage_ptr_$returns$_t_uint256_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3317_storage_ptr_$returns$_t_uint256_$", "typeString": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)" } }, - "id": 3630, + "id": 3661, "isConstant": false, "isLValue": false, "isPure": false, @@ -10582,20 +10582,20 @@ "typeString": "uint256" } }, - "functionReturnParameters": 3626, - "id": 3631, + "functionReturnParameters": 3657, + "id": 3662, "nodeType": "Return", "src": "7111:26:19" } ] }, "documentation": { - "id": 3620, + "id": 3651, "nodeType": "StructuredDocumentation", "src": "6946:72:19", "text": " @dev Returns the number of elements in the map. O(1)." }, - "id": 3633, + "id": 3664, "implemented": true, "kind": "function", "modifiers": [], @@ -10603,33 +10603,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3623, + "id": 3654, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3622, + "id": 3653, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3633, + "scope": 3664, "src": "7039:28:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" }, "typeName": { "contractScope": null, - "id": 3621, + "id": 3652, "name": "UintToAddressMap", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3550, + "referencedDeclaration": 3581, "src": "7039:16:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" } }, @@ -10640,17 +10640,17 @@ "src": "7038:30:19" }, "returnParameters": { - "id": 3626, + "id": 3657, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3625, + "id": 3656, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3633, + "scope": 3664, "src": "7092:7:19", "stateVariable": false, "storageLocation": "default", @@ -10659,7 +10659,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3624, + "id": 3655, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7092:7:19", @@ -10674,7 +10674,7 @@ ], "src": "7091:9:19" }, - "scope": 3725, + "scope": 3756, "src": "7023:121:19", "stateMutability": "view", "virtual": false, @@ -10682,24 +10682,24 @@ }, { "body": { - "id": 3668, + "id": 3699, "nodeType": "Block", "src": "7570:126:19", "statements": [ { "assignments": [ - 3646, - 3648 + 3677, + 3679 ], "declarations": [ { "constant": false, - "id": 3646, + "id": 3677, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3668, + "scope": 3699, "src": "7581:11:19", "stateVariable": false, "storageLocation": "default", @@ -10708,7 +10708,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3645, + "id": 3676, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7581:7:19", @@ -10722,12 +10722,12 @@ }, { "constant": false, - "id": 3648, + "id": 3679, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3668, + "scope": 3699, "src": "7594:13:19", "stateVariable": false, "storageLocation": "default", @@ -10736,7 +10736,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3647, + "id": 3678, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7594:7:19", @@ -10749,7 +10749,7 @@ "visibility": "internal" } ], - "id": 3654, + "id": 3685, "initialValue": { "argumentTypes": null, "arguments": [ @@ -10757,38 +10757,38 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3650, + "id": 3681, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3636, + "referencedDeclaration": 3667, "src": "7615:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" } }, - "id": 3651, + "id": 3682, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3549, + "referencedDeclaration": 3580, "src": "7615:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" } }, { "argumentTypes": null, - "id": 3652, + "id": 3683, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3638, + "referencedDeclaration": 3669, "src": "7627:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10799,7 +10799,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" }, { @@ -10807,18 +10807,18 @@ "typeString": "uint256" } ], - "id": 3649, + "id": 3680, "name": "_at", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3495, + "referencedDeclaration": 3526, "src": "7611:3:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3286_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3317_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$", "typeString": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)" } }, - "id": 3653, + "id": 3684, "isConstant": false, "isLValue": false, "isPure": false, @@ -10845,11 +10845,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3657, + "id": 3688, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3646, + "referencedDeclaration": 3677, "src": "7659:3:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -10864,7 +10864,7 @@ "typeString": "bytes32" } ], - "id": 3656, + "id": 3687, "isConstant": false, "isLValue": false, "isPure": true, @@ -10876,7 +10876,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 3655, + "id": 3686, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7651:7:19", @@ -10886,7 +10886,7 @@ } } }, - "id": 3658, + "id": 3689, "isConstant": false, "isLValue": false, "isPure": false, @@ -10909,11 +10909,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3663, + "id": 3694, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3648, + "referencedDeclaration": 3679, "src": "7681:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -10928,7 +10928,7 @@ "typeString": "bytes32" } ], - "id": 3662, + "id": 3693, "isConstant": false, "isLValue": false, "isPure": true, @@ -10940,7 +10940,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 3661, + "id": 3692, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7673:7:19", @@ -10950,7 +10950,7 @@ } } }, - "id": 3664, + "id": 3695, "isConstant": false, "isLValue": false, "isPure": false, @@ -10973,7 +10973,7 @@ "typeString": "uint256" } ], - "id": 3660, + "id": 3691, "isConstant": false, "isLValue": false, "isPure": true, @@ -10985,7 +10985,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 3659, + "id": 3690, "name": "address", "nodeType": "ElementaryTypeName", "src": "7665:7:19", @@ -10995,7 +10995,7 @@ } } }, - "id": 3665, + "id": 3696, "isConstant": false, "isLValue": false, "isPure": false, @@ -11011,7 +11011,7 @@ } } ], - "id": 3666, + "id": 3697, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -11024,20 +11024,20 @@ "typeString": "tuple(uint256,address payable)" } }, - "functionReturnParameters": 3644, - "id": 3667, + "functionReturnParameters": 3675, + "id": 3698, "nodeType": "Return", "src": "7643:46:19" } ] }, "documentation": { - "id": 3634, + "id": 3665, "nodeType": "StructuredDocumentation", "src": "7149:318:19", "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." }, - "id": 3669, + "id": 3700, "implemented": true, "kind": "function", "modifiers": [], @@ -11045,33 +11045,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3639, + "id": 3670, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3636, + "id": 3667, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3669, + "scope": 3700, "src": "7484:28:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" }, "typeName": { "contractScope": null, - "id": 3635, + "id": 3666, "name": "UintToAddressMap", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3550, + "referencedDeclaration": 3581, "src": "7484:16:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" } }, @@ -11080,12 +11080,12 @@ }, { "constant": false, - "id": 3638, + "id": 3669, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3669, + "scope": 3700, "src": "7514:13:19", "stateVariable": false, "storageLocation": "default", @@ -11094,7 +11094,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3637, + "id": 3668, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7514:7:19", @@ -11110,17 +11110,17 @@ "src": "7483:45:19" }, "returnParameters": { - "id": 3644, + "id": 3675, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3641, + "id": 3672, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3669, + "scope": 3700, "src": "7552:7:19", "stateVariable": false, "storageLocation": "default", @@ -11129,7 +11129,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3640, + "id": 3671, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7552:7:19", @@ -11143,12 +11143,12 @@ }, { "constant": false, - "id": 3643, + "id": 3674, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3669, + "scope": 3700, "src": "7561:7:19", "stateVariable": false, "storageLocation": "default", @@ -11157,7 +11157,7 @@ "typeString": "address" }, "typeName": { - "id": 3642, + "id": 3673, "name": "address", "nodeType": "ElementaryTypeName", "src": "7561:7:19", @@ -11173,7 +11173,7 @@ ], "src": "7551:18:19" }, - "scope": 3725, + "scope": 3756, "src": "7472:224:19", "stateMutability": "view", "virtual": false, @@ -11181,7 +11181,7 @@ }, { "body": { - "id": 3694, + "id": 3725, "nodeType": "Block", "src": "7936:72:19", "statements": [ @@ -11199,28 +11199,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3684, + "id": 3715, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3672, + "referencedDeclaration": 3703, "src": "7974:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" } }, - "id": 3685, + "id": 3716, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3549, + "referencedDeclaration": 3580, "src": "7974:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" } }, @@ -11229,11 +11229,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3688, + "id": 3719, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3674, + "referencedDeclaration": 3705, "src": "7994:3:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11248,7 +11248,7 @@ "typeString": "uint256" } ], - "id": 3687, + "id": 3718, "isConstant": false, "isLValue": false, "isPure": true, @@ -11260,7 +11260,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 3686, + "id": 3717, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7986:7:19", @@ -11270,7 +11270,7 @@ } } }, - "id": 3689, + "id": 3720, "isConstant": false, "isLValue": false, "isPure": false, @@ -11289,7 +11289,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" }, { @@ -11297,21 +11297,21 @@ "typeString": "bytes32" } ], - "id": 3683, + "id": 3714, "name": "_get", "nodeType": "Identifier", "overloadedDeclarations": [ - 3512, - 3547 + 3543, + 3578 ], - "referencedDeclaration": 3512, + "referencedDeclaration": 3543, "src": "7969:4:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3286_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3317_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$", "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)" } }, - "id": 3690, + "id": 3721, "isConstant": false, "isLValue": false, "isPure": false, @@ -11334,7 +11334,7 @@ "typeString": "bytes32" } ], - "id": 3682, + "id": 3713, "isConstant": false, "isLValue": false, "isPure": true, @@ -11346,7 +11346,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 3681, + "id": 3712, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7961:7:19", @@ -11356,7 +11356,7 @@ } } }, - "id": 3691, + "id": 3722, "isConstant": false, "isLValue": false, "isPure": false, @@ -11379,7 +11379,7 @@ "typeString": "uint256" } ], - "id": 3680, + "id": 3711, "isConstant": false, "isLValue": false, "isPure": true, @@ -11391,7 +11391,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 3679, + "id": 3710, "name": "address", "nodeType": "ElementaryTypeName", "src": "7953:7:19", @@ -11401,7 +11401,7 @@ } } }, - "id": 3692, + "id": 3723, "isConstant": false, "isLValue": false, "isPure": false, @@ -11416,20 +11416,20 @@ "typeString": "address payable" } }, - "functionReturnParameters": 3678, - "id": 3693, + "functionReturnParameters": 3709, + "id": 3724, "nodeType": "Return", "src": "7946:55:19" } ] }, "documentation": { - "id": 3670, + "id": 3701, "nodeType": "StructuredDocumentation", "src": "7702:141:19", "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." }, - "id": 3695, + "id": 3726, "implemented": true, "kind": "function", "modifiers": [], @@ -11437,33 +11437,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3675, + "id": 3706, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3672, + "id": 3703, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3695, + "scope": 3726, "src": "7861:28:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" }, "typeName": { "contractScope": null, - "id": 3671, + "id": 3702, "name": "UintToAddressMap", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3550, + "referencedDeclaration": 3581, "src": "7861:16:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" } }, @@ -11472,12 +11472,12 @@ }, { "constant": false, - "id": 3674, + "id": 3705, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3695, + "scope": 3726, "src": "7891:11:19", "stateVariable": false, "storageLocation": "default", @@ -11486,7 +11486,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3673, + "id": 3704, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7891:7:19", @@ -11502,17 +11502,17 @@ "src": "7860:43:19" }, "returnParameters": { - "id": 3678, + "id": 3709, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3677, + "id": 3708, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3695, + "scope": 3726, "src": "7927:7:19", "stateVariable": false, "storageLocation": "default", @@ -11521,7 +11521,7 @@ "typeString": "address" }, "typeName": { - "id": 3676, + "id": 3707, "name": "address", "nodeType": "ElementaryTypeName", "src": "7927:7:19", @@ -11537,7 +11537,7 @@ ], "src": "7926:9:19" }, - "scope": 3725, + "scope": 3756, "src": "7848:160:19", "stateMutability": "view", "virtual": false, @@ -11545,7 +11545,7 @@ }, { "body": { - "id": 3723, + "id": 3754, "nodeType": "Block", "src": "8231:86:19", "statements": [ @@ -11563,28 +11563,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3712, + "id": 3743, "name": "map", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3698, + "referencedDeclaration": 3729, "src": "8269:3:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" } }, - "id": 3713, + "id": 3744, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3549, + "referencedDeclaration": 3580, "src": "8269:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" } }, @@ -11593,11 +11593,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3716, + "id": 3747, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3700, + "referencedDeclaration": 3731, "src": "8289:3:19", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11612,7 +11612,7 @@ "typeString": "uint256" } ], - "id": 3715, + "id": 3746, "isConstant": false, "isLValue": false, "isPure": true, @@ -11624,7 +11624,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 3714, + "id": 3745, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "8281:7:19", @@ -11634,7 +11634,7 @@ } } }, - "id": 3717, + "id": 3748, "isConstant": false, "isLValue": false, "isPure": false, @@ -11651,11 +11651,11 @@ }, { "argumentTypes": null, - "id": 3718, + "id": 3749, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3702, + "referencedDeclaration": 3733, "src": "8295:12:19", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -11666,7 +11666,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Map_$3286_storage", + "typeIdentifier": "t_struct$_Map_$3317_storage", "typeString": "struct EnumerableMap.Map storage ref" }, { @@ -11678,21 +11678,21 @@ "typeString": "string memory" } ], - "id": 3711, + "id": 3742, "name": "_get", "nodeType": "Identifier", "overloadedDeclarations": [ - 3512, - 3547 + 3543, + 3578 ], - "referencedDeclaration": 3547, + "referencedDeclaration": 3578, "src": "8264:4:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3286_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$3317_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)" } }, - "id": 3719, + "id": 3750, "isConstant": false, "isLValue": false, "isPure": false, @@ -11715,7 +11715,7 @@ "typeString": "bytes32" } ], - "id": 3710, + "id": 3741, "isConstant": false, "isLValue": false, "isPure": true, @@ -11727,7 +11727,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 3709, + "id": 3740, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8256:7:19", @@ -11737,7 +11737,7 @@ } } }, - "id": 3720, + "id": 3751, "isConstant": false, "isLValue": false, "isPure": false, @@ -11760,7 +11760,7 @@ "typeString": "uint256" } ], - "id": 3708, + "id": 3739, "isConstant": false, "isLValue": false, "isPure": true, @@ -11772,7 +11772,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 3707, + "id": 3738, "name": "address", "nodeType": "ElementaryTypeName", "src": "8248:7:19", @@ -11782,7 +11782,7 @@ } } }, - "id": 3721, + "id": 3752, "isConstant": false, "isLValue": false, "isPure": false, @@ -11797,20 +11797,20 @@ "typeString": "address payable" } }, - "functionReturnParameters": 3706, - "id": 3722, + "functionReturnParameters": 3737, + "id": 3753, "nodeType": "Return", "src": "8241:69:19" } ] }, "documentation": { - "id": 3696, + "id": 3727, "nodeType": "StructuredDocumentation", "src": "8014:96:19", "text": " @dev Same as {get}, with a custom error message when `key` is not in the map." }, - "id": 3724, + "id": 3755, "implemented": true, "kind": "function", "modifiers": [], @@ -11818,33 +11818,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3703, + "id": 3734, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3698, + "id": 3729, "mutability": "mutable", "name": "map", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3724, + "scope": 3755, "src": "8128:28:19", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" }, "typeName": { "contractScope": null, - "id": 3697, + "id": 3728, "name": "UintToAddressMap", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3550, + "referencedDeclaration": 3581, "src": "8128:16:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintToAddressMap_$3550_storage_ptr", + "typeIdentifier": "t_struct$_UintToAddressMap_$3581_storage_ptr", "typeString": "struct EnumerableMap.UintToAddressMap" } }, @@ -11853,12 +11853,12 @@ }, { "constant": false, - "id": 3700, + "id": 3731, "mutability": "mutable", "name": "key", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3724, + "scope": 3755, "src": "8158:11:19", "stateVariable": false, "storageLocation": "default", @@ -11867,7 +11867,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3699, + "id": 3730, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8158:7:19", @@ -11881,12 +11881,12 @@ }, { "constant": false, - "id": 3702, + "id": 3733, "mutability": "mutable", "name": "errorMessage", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3724, + "scope": 3755, "src": "8171:26:19", "stateVariable": false, "storageLocation": "memory", @@ -11895,7 +11895,7 @@ "typeString": "string" }, "typeName": { - "id": 3701, + "id": 3732, "name": "string", "nodeType": "ElementaryTypeName", "src": "8171:6:19", @@ -11911,17 +11911,17 @@ "src": "8127:71:19" }, "returnParameters": { - "id": 3706, + "id": 3737, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3705, + "id": 3736, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3724, + "scope": 3755, "src": "8222:7:19", "stateVariable": false, "storageLocation": "default", @@ -11930,7 +11930,7 @@ "typeString": "address" }, "typeName": { - "id": 3704, + "id": 3735, "name": "address", "nodeType": "ElementaryTypeName", "src": "8222:7:19", @@ -11946,14 +11946,14 @@ ], "src": "8221:9:19" }, - "scope": 3725, + "scope": 3756, "src": "8115:202:19", "stateMutability": "view", "virtual": false, "visibility": "internal" } ], - "scope": 3726, + "scope": 3757, "src": "764:7555:19" } ], @@ -11961,16 +11961,20 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:06.007Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.733Z", "devdoc": { "details": "Library for managing an enumerable variant of Solidity's https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`] type. Maps have the following properties: - Entries are added, removed, and checked for existence in constant time (O(1)). - Entries are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example { // Add the library methods using EnumerableMap for EnumerableMap.UintToAddressMap; // Declare a set state variable EnumerableMap.UintToAddressMap private myMap; } ``` As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are supported.", - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/EnumerableSet.json b/abi/EnumerableSet.json index f18e651..a95fc67 100644 --- a/abi/EnumerableSet.json +++ b/abi/EnumerableSet.json @@ -1,9 +1,9 @@ { "contractName": "EnumerableSet", "abi": [], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example { // Add the library methods using EnumerableSet for EnumerableSet.AddressSet; // Declare a set state variable EnumerableSet.AddressSet private mySet; } ``` As of v3.0.0, only sets of type `address` (`AddressSet`) and `uint256` (`UintSet`) are supported.\",\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/EnumerableSet.sol\":\"EnumerableSet\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]}},\"version\":1}", - "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122008641fe1898e521798c4cbb961be01c95f8cf3203510ae47b43ef3da84eb3bee64736f6c634300060a0033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122008641fe1898e521798c4cbb961be01c95f8cf3203510ae47b43ef3da84eb3bee64736f6c634300060a0033", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example { // Add the library methods using EnumerableSet for EnumerableSet.AddressSet; // Declare a set state variable EnumerableSet.AddressSet private mySet; } ``` As of v3.0.0, only sets of type `address` (`AddressSet`) and `uint256` (`UintSet`) are supported.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/EnumerableSet.sol\":\"EnumerableSet\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122066257c619c694fcd56d78b5a5a617414bd3dd787598665cdf8155102188823b464736f6c634300060b0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122066257c619c694fcd56d78b5a5a617414bd3dd787598665cdf8155102188823b464736f6c634300060b0033", "immutableReferences": {}, "sourceMap": "724:7062:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", "deployedSourceMap": "724:7062:20:-:0;;;;;;;;", @@ -13,15 +13,15 @@ "absolutePath": "@openzeppelin/contracts/utils/EnumerableSet.sol", "exportedSymbols": { "EnumerableSet": [ - 4120 + 4151 ] }, - "id": 4121, + "id": 4152, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 3727, + "id": 3758, "literals": [ "solidity", "^", @@ -37,31 +37,31 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 3728, + "id": 3759, "nodeType": "StructuredDocumentation", "src": "58:665:20", "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.0.0, only sets of type `address` (`AddressSet`) and `uint256`\n (`UintSet`) are supported." }, "fullyImplemented": true, - "id": 4120, + "id": 4151, "linearizedBaseContracts": [ - 4120 + 4151 ], "name": "EnumerableSet", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "EnumerableSet.Set", - "id": 3736, + "id": 3767, "members": [ { "constant": false, - "id": 3731, + "id": 3762, "mutability": "mutable", "name": "_values", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3736, + "scope": 3767, "src": "1246:17:20", "stateVariable": false, "storageLocation": "default", @@ -71,7 +71,7 @@ }, "typeName": { "baseType": { - "id": 3729, + "id": 3760, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1246:7:20", @@ -80,7 +80,7 @@ "typeString": "bytes32" } }, - "id": 3730, + "id": 3761, "length": null, "nodeType": "ArrayTypeName", "src": "1246:9:20", @@ -94,12 +94,12 @@ }, { "constant": false, - "id": 3735, + "id": 3766, "mutability": "mutable", "name": "_indexes", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3736, + "scope": 3767, "src": "1397:37:20", "stateVariable": false, "storageLocation": "default", @@ -108,9 +108,9 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 3734, + "id": 3765, "keyType": { - "id": 3732, + "id": 3763, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1406:7:20", @@ -126,7 +126,7 @@ "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 3733, + "id": 3764, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1417:7:20", @@ -142,20 +142,20 @@ ], "name": "Set", "nodeType": "StructDefinition", - "scope": 4120, + "scope": 4151, "src": "1192:249:20", "visibility": "public" }, { "body": { - "id": 3776, + "id": 3807, "nodeType": "Block", "src": "1680:335:20", "statements": [ { "condition": { "argumentTypes": null, - "id": 3750, + "id": 3781, "isConstant": false, "isLValue": false, "isPure": false, @@ -169,24 +169,24 @@ "arguments": [ { "argumentTypes": null, - "id": 3747, + "id": 3778, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3739, + "referencedDeclaration": 3770, "src": "1705:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, { "argumentTypes": null, - "id": 3748, + "id": 3779, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3741, + "referencedDeclaration": 3772, "src": "1710:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -197,7 +197,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" }, { @@ -205,18 +205,18 @@ "typeString": "bytes32" } ], - "id": 3746, + "id": 3777, "name": "_contains", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3875, + "referencedDeclaration": 3906, "src": "1695:9:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3736_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3767_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" } }, - "id": 3749, + "id": 3780, "isConstant": false, "isLValue": false, "isPure": false, @@ -237,7 +237,7 @@ } }, "falseBody": { - "id": 3774, + "id": 3805, "nodeType": "Block", "src": "1972:37:20", "statements": [ @@ -245,7 +245,7 @@ "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 3772, + "id": 3803, "isConstant": false, "isLValue": false, "isPure": true, @@ -260,18 +260,18 @@ }, "value": "false" }, - "functionReturnParameters": 3745, - "id": 3773, + "functionReturnParameters": 3776, + "id": 3804, "nodeType": "Return", "src": "1986:12:20" } ] }, - "id": 3775, + "id": 3806, "nodeType": "IfStatement", "src": "1690:319:20", "trueBody": { - "id": 3771, + "id": 3802, "nodeType": "Block", "src": "1718:248:20", "statements": [ @@ -281,11 +281,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3756, + "id": 3787, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3741, + "referencedDeclaration": 3772, "src": "1749:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -304,32 +304,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3751, + "id": 3782, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3739, + "referencedDeclaration": 3770, "src": "1732:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3754, + "id": 3785, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_values", "nodeType": "MemberAccess", - "referencedDeclaration": 3731, + "referencedDeclaration": 3762, "src": "1732:11:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 3755, + "id": 3786, "isConstant": false, "isLValue": false, "isPure": false, @@ -343,7 +343,7 @@ "typeString": "function (bytes32)" } }, - "id": 3757, + "id": 3788, "isConstant": false, "isLValue": false, "isPure": false, @@ -358,14 +358,14 @@ "typeString": "tuple()" } }, - "id": 3758, + "id": 3789, "nodeType": "ExpressionStatement", "src": "1732:23:20" }, { "expression": { "argumentTypes": null, - "id": 3767, + "id": 3798, "isConstant": false, "isLValue": false, "isPure": false, @@ -376,39 +376,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3759, + "id": 3790, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3739, + "referencedDeclaration": 3770, "src": "1890:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3762, + "id": 3793, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3735, + "referencedDeclaration": 3766, "src": "1890:12:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3763, + "id": 3794, "indexExpression": { "argumentTypes": null, - "id": 3761, + "id": 3792, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3741, + "referencedDeclaration": 3772, "src": "1903:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -434,32 +434,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3764, + "id": 3795, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3739, + "referencedDeclaration": 3770, "src": "1912:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3765, + "id": 3796, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_values", "nodeType": "MemberAccess", - "referencedDeclaration": 3731, + "referencedDeclaration": 3762, "src": "1912:11:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 3766, + "id": 3797, "isConstant": false, "isLValue": false, "isPure": false, @@ -479,7 +479,7 @@ "typeString": "uint256" } }, - "id": 3768, + "id": 3799, "nodeType": "ExpressionStatement", "src": "1890:40:20" }, @@ -487,7 +487,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3769, + "id": 3800, "isConstant": false, "isLValue": false, "isPure": true, @@ -502,8 +502,8 @@ }, "value": "true" }, - "functionReturnParameters": 3745, - "id": 3770, + "functionReturnParameters": 3776, + "id": 3801, "nodeType": "Return", "src": "1944:11:20" } @@ -513,12 +513,12 @@ ] }, "documentation": { - "id": 3737, + "id": 3768, "nodeType": "StructuredDocumentation", "src": "1447:159:20", "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." }, - "id": 3777, + "id": 3808, "implemented": true, "kind": "function", "modifiers": [], @@ -526,33 +526,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3742, + "id": 3773, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3739, + "id": 3770, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3777, + "scope": 3808, "src": "1625:15:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" }, "typeName": { "contractScope": null, - "id": 3738, + "id": 3769, "name": "Set", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3736, + "referencedDeclaration": 3767, "src": "1625:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" } }, @@ -561,12 +561,12 @@ }, { "constant": false, - "id": 3741, + "id": 3772, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3777, + "scope": 3808, "src": "1642:13:20", "stateVariable": false, "storageLocation": "default", @@ -575,7 +575,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3740, + "id": 3771, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1642:7:20", @@ -591,17 +591,17 @@ "src": "1624:32:20" }, "returnParameters": { - "id": 3745, + "id": 3776, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3744, + "id": 3775, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3777, + "scope": 3808, "src": "1674:4:20", "stateVariable": false, "storageLocation": "default", @@ -610,7 +610,7 @@ "typeString": "bool" }, "typeName": { - "id": 3743, + "id": 3774, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1674:4:20", @@ -625,7 +625,7 @@ ], "src": "1673:6:20" }, - "scope": 4120, + "scope": 4151, "src": "1611:404:20", "stateMutability": "nonpayable", "virtual": false, @@ -633,23 +633,23 @@ }, { "body": { - "id": 3856, + "id": 3887, "nodeType": "Block", "src": "2255:1440:20", "statements": [ { "assignments": [ - 3788 + 3819 ], "declarations": [ { "constant": false, - "id": 3788, + "id": 3819, "mutability": "mutable", "name": "valueIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3856, + "scope": 3887, "src": "2365:18:20", "stateVariable": false, "storageLocation": "default", @@ -658,7 +658,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3787, + "id": 3818, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2365:7:20", @@ -671,46 +671,46 @@ "visibility": "internal" } ], - "id": 3793, + "id": 3824, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3789, + "id": 3820, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 3811, "src": "2386:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3790, + "id": 3821, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3735, + "referencedDeclaration": 3766, "src": "2386:12:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3792, + "id": 3823, "indexExpression": { "argumentTypes": null, - "id": 3791, + "id": 3822, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3782, + "referencedDeclaration": 3813, "src": "2399:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -738,18 +738,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3796, + "id": 3827, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3794, + "id": 3825, "name": "valueIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3788, + "referencedDeclaration": 3819, "src": "2420:10:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -761,7 +761,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3795, + "id": 3826, "isConstant": false, "isLValue": false, "isPure": true, @@ -783,7 +783,7 @@ } }, "falseBody": { - "id": 3854, + "id": 3885, "nodeType": "Block", "src": "3652:37:20", "statements": [ @@ -791,7 +791,7 @@ "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 3852, + "id": 3883, "isConstant": false, "isLValue": false, "isPure": true, @@ -806,34 +806,34 @@ }, "value": "false" }, - "functionReturnParameters": 3786, - "id": 3853, + "functionReturnParameters": 3817, + "id": 3884, "nodeType": "Return", "src": "3666:12:20" } ] }, - "id": 3855, + "id": 3886, "nodeType": "IfStatement", "src": "2416:1273:20", "trueBody": { - "id": 3851, + "id": 3882, "nodeType": "Block", "src": "2437:1209:20", "statements": [ { "assignments": [ - 3798 + 3829 ], "declarations": [ { "constant": false, - "id": 3798, + "id": 3829, "mutability": "mutable", "name": "toDeleteIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3851, + "scope": 3882, "src": "2777:21:20", "stateVariable": false, "storageLocation": "default", @@ -842,7 +842,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3797, + "id": 3828, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2777:7:20", @@ -855,25 +855,25 @@ "visibility": "internal" } ], - "id": 3802, + "id": 3833, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3801, + "id": 3832, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3799, + "id": 3830, "name": "valueIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3788, + "referencedDeclaration": 3819, "src": "2801:10:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -885,7 +885,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 3800, + "id": 3831, "isConstant": false, "isLValue": false, "isPure": true, @@ -911,17 +911,17 @@ }, { "assignments": [ - 3804 + 3835 ], "declarations": [ { "constant": false, - "id": 3804, + "id": 3835, "mutability": "mutable", "name": "lastIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3851, + "scope": 3882, "src": "2829:17:20", "stateVariable": false, "storageLocation": "default", @@ -930,7 +930,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3803, + "id": 3834, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2829:7:20", @@ -943,14 +943,14 @@ "visibility": "internal" } ], - "id": 3810, + "id": 3841, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3809, + "id": 3840, "isConstant": false, "isLValue": false, "isPure": false, @@ -961,32 +961,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3805, + "id": 3836, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 3811, "src": "2849:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3806, + "id": 3837, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_values", "nodeType": "MemberAccess", - "referencedDeclaration": 3731, + "referencedDeclaration": 3762, "src": "2849:11:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 3807, + "id": 3838, "isConstant": false, "isLValue": false, "isPure": false, @@ -1005,7 +1005,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 3808, + "id": 3839, "isConstant": false, "isLValue": false, "isPure": true, @@ -1031,17 +1031,17 @@ }, { "assignments": [ - 3812 + 3843 ], "declarations": [ { "constant": false, - "id": 3812, + "id": 3843, "mutability": "mutable", "name": "lastvalue", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3851, + "scope": 3882, "src": "3111:17:20", "stateVariable": false, "storageLocation": "default", @@ -1050,7 +1050,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3811, + "id": 3842, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3111:7:20", @@ -1063,46 +1063,46 @@ "visibility": "internal" } ], - "id": 3817, + "id": 3848, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3813, + "id": 3844, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 3811, "src": "3131:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3814, + "id": 3845, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_values", "nodeType": "MemberAccess", - "referencedDeclaration": 3731, + "referencedDeclaration": 3762, "src": "3131:11:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 3816, + "id": 3847, "indexExpression": { "argumentTypes": null, - "id": 3815, + "id": 3846, "name": "lastIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3804, + "referencedDeclaration": 3835, "src": "3143:9:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1126,7 +1126,7 @@ { "expression": { "argumentTypes": null, - "id": 3824, + "id": 3855, "isConstant": false, "isLValue": false, "isPure": false, @@ -1137,39 +1137,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3818, + "id": 3849, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 3811, "src": "3245:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3821, + "id": 3852, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_values", "nodeType": "MemberAccess", - "referencedDeclaration": 3731, + "referencedDeclaration": 3762, "src": "3245:11:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 3822, + "id": 3853, "indexExpression": { "argumentTypes": null, - "id": 3820, + "id": 3851, "name": "toDeleteIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3798, + "referencedDeclaration": 3829, "src": "3257:13:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1191,11 +1191,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3823, + "id": 3854, "name": "lastvalue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3812, + "referencedDeclaration": 3843, "src": "3274:9:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1208,14 +1208,14 @@ "typeString": "bytes32" } }, - "id": 3825, + "id": 3856, "nodeType": "ExpressionStatement", "src": "3245:38:20" }, { "expression": { "argumentTypes": null, - "id": 3834, + "id": 3865, "isConstant": false, "isLValue": false, "isPure": false, @@ -1226,39 +1226,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3826, + "id": 3857, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 3811, "src": "3349:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3829, + "id": 3860, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3735, + "referencedDeclaration": 3766, "src": "3349:12:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3830, + "id": 3861, "indexExpression": { "argumentTypes": null, - "id": 3828, + "id": 3859, "name": "lastvalue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3812, + "referencedDeclaration": 3843, "src": "3362:9:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1284,18 +1284,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3833, + "id": 3864, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3831, + "id": 3862, "name": "toDeleteIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3798, + "referencedDeclaration": 3829, "src": "3375:13:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1307,7 +1307,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 3832, + "id": 3863, "isConstant": false, "isLValue": false, "isPure": true, @@ -1334,7 +1334,7 @@ "typeString": "uint256" } }, - "id": 3835, + "id": 3866, "nodeType": "ExpressionStatement", "src": "3349:43:20" }, @@ -1348,32 +1348,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3836, + "id": 3867, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 3811, "src": "3498:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3839, + "id": 3870, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_values", "nodeType": "MemberAccess", - "referencedDeclaration": 3731, + "referencedDeclaration": 3762, "src": "3498:11:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 3840, + "id": 3871, "isConstant": false, "isLValue": false, "isPure": false, @@ -1387,7 +1387,7 @@ "typeString": "function ()" } }, - "id": 3841, + "id": 3872, "isConstant": false, "isLValue": false, "isPure": false, @@ -1402,14 +1402,14 @@ "typeString": "tuple()" } }, - "id": 3842, + "id": 3873, "nodeType": "ExpressionStatement", "src": "3498:17:20" }, { "expression": { "argumentTypes": null, - "id": 3847, + "id": 3878, "isConstant": false, "isLValue": false, "isPure": false, @@ -1424,39 +1424,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3843, + "id": 3874, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 3811, "src": "3590:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3844, + "id": 3875, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3735, + "referencedDeclaration": 3766, "src": "3590:12:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3846, + "id": 3877, "indexExpression": { "argumentTypes": null, - "id": 3845, + "id": 3876, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3782, + "referencedDeclaration": 3813, "src": "3603:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1479,7 +1479,7 @@ "typeString": "tuple()" } }, - "id": 3848, + "id": 3879, "nodeType": "ExpressionStatement", "src": "3583:26:20" }, @@ -1487,7 +1487,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3849, + "id": 3880, "isConstant": false, "isLValue": false, "isPure": true, @@ -1502,8 +1502,8 @@ }, "value": "true" }, - "functionReturnParameters": 3786, - "id": 3850, + "functionReturnParameters": 3817, + "id": 3881, "nodeType": "Return", "src": "3624:11:20" } @@ -1513,12 +1513,12 @@ ] }, "documentation": { - "id": 3778, + "id": 3809, "nodeType": "StructuredDocumentation", "src": "2021:157:20", "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." }, - "id": 3857, + "id": 3888, "implemented": true, "kind": "function", "modifiers": [], @@ -1526,33 +1526,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3783, + "id": 3814, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3780, + "id": 3811, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3857, + "scope": 3888, "src": "2200:15:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" }, "typeName": { "contractScope": null, - "id": 3779, + "id": 3810, "name": "Set", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3736, + "referencedDeclaration": 3767, "src": "2200:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" } }, @@ -1561,12 +1561,12 @@ }, { "constant": false, - "id": 3782, + "id": 3813, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3857, + "scope": 3888, "src": "2217:13:20", "stateVariable": false, "storageLocation": "default", @@ -1575,7 +1575,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3781, + "id": 3812, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2217:7:20", @@ -1591,17 +1591,17 @@ "src": "2199:32:20" }, "returnParameters": { - "id": 3786, + "id": 3817, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3785, + "id": 3816, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3857, + "scope": 3888, "src": "2249:4:20", "stateVariable": false, "storageLocation": "default", @@ -1610,7 +1610,7 @@ "typeString": "bool" }, "typeName": { - "id": 3784, + "id": 3815, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2249:4:20", @@ -1625,7 +1625,7 @@ ], "src": "2248:6:20" }, - "scope": 4120, + "scope": 4151, "src": "2183:1512:20", "stateMutability": "nonpayable", "virtual": false, @@ -1633,7 +1633,7 @@ }, { "body": { - "id": 3874, + "id": 3905, "nodeType": "Block", "src": "3855:48:20", "statements": [ @@ -1644,7 +1644,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3872, + "id": 3903, "isConstant": false, "isLValue": false, "isPure": false, @@ -1655,39 +1655,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3867, + "id": 3898, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3860, + "referencedDeclaration": 3891, "src": "3872:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3868, + "id": 3899, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3735, + "referencedDeclaration": 3766, "src": "3872:12:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3870, + "id": 3901, "indexExpression": { "argumentTypes": null, - "id": 3869, + "id": 3900, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3862, + "referencedDeclaration": 3893, "src": "3885:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1710,7 +1710,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3871, + "id": 3902, "isConstant": false, "isLValue": false, "isPure": true, @@ -1731,20 +1731,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 3866, - "id": 3873, + "functionReturnParameters": 3897, + "id": 3904, "nodeType": "Return", "src": "3865:31:20" } ] }, "documentation": { - "id": 3858, + "id": 3889, "nodeType": "StructuredDocumentation", "src": "3701:70:20", "text": " @dev Returns true if the value is in the set. O(1)." }, - "id": 3875, + "id": 3906, "implemented": true, "kind": "function", "modifiers": [], @@ -1752,33 +1752,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3863, + "id": 3894, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3860, + "id": 3891, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3875, + "scope": 3906, "src": "3795:15:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" }, "typeName": { "contractScope": null, - "id": 3859, + "id": 3890, "name": "Set", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3736, + "referencedDeclaration": 3767, "src": "3795:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" } }, @@ -1787,12 +1787,12 @@ }, { "constant": false, - "id": 3862, + "id": 3893, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3875, + "scope": 3906, "src": "3812:13:20", "stateVariable": false, "storageLocation": "default", @@ -1801,7 +1801,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3861, + "id": 3892, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3812:7:20", @@ -1817,17 +1817,17 @@ "src": "3794:32:20" }, "returnParameters": { - "id": 3866, + "id": 3897, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3865, + "id": 3896, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3875, + "scope": 3906, "src": "3849:4:20", "stateVariable": false, "storageLocation": "default", @@ -1836,7 +1836,7 @@ "typeString": "bool" }, "typeName": { - "id": 3864, + "id": 3895, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3849:4:20", @@ -1851,7 +1851,7 @@ ], "src": "3848:6:20" }, - "scope": 4120, + "scope": 4151, "src": "3776:127:20", "stateMutability": "view", "virtual": false, @@ -1859,7 +1859,7 @@ }, { "body": { - "id": 3887, + "id": 3918, "nodeType": "Block", "src": "4049:42:20", "statements": [ @@ -1870,32 +1870,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3883, + "id": 3914, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3878, + "referencedDeclaration": 3909, "src": "4066:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3884, + "id": 3915, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_values", "nodeType": "MemberAccess", - "referencedDeclaration": 3731, + "referencedDeclaration": 3762, "src": "4066:11:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 3885, + "id": 3916, "isConstant": false, "isLValue": false, "isPure": false, @@ -1909,20 +1909,20 @@ "typeString": "uint256" } }, - "functionReturnParameters": 3882, - "id": 3886, + "functionReturnParameters": 3913, + "id": 3917, "nodeType": "Return", "src": "4059:25:20" } ] }, "documentation": { - "id": 3876, + "id": 3907, "nodeType": "StructuredDocumentation", "src": "3909:70:20", "text": " @dev Returns the number of values on the set. O(1)." }, - "id": 3888, + "id": 3919, "implemented": true, "kind": "function", "modifiers": [], @@ -1930,33 +1930,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3879, + "id": 3910, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3878, + "id": 3909, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3888, + "scope": 3919, "src": "4001:15:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" }, "typeName": { "contractScope": null, - "id": 3877, + "id": 3908, "name": "Set", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3736, + "referencedDeclaration": 3767, "src": "4001:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" } }, @@ -1967,17 +1967,17 @@ "src": "4000:17:20" }, "returnParameters": { - "id": 3882, + "id": 3913, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3881, + "id": 3912, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3888, + "scope": 3919, "src": "4040:7:20", "stateVariable": false, "storageLocation": "default", @@ -1986,7 +1986,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3880, + "id": 3911, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4040:7:20", @@ -2001,7 +2001,7 @@ ], "src": "4039:9:20" }, - "scope": 4120, + "scope": 4151, "src": "3984:107:20", "stateMutability": "view", "virtual": false, @@ -2009,7 +2009,7 @@ }, { "body": { - "id": 3912, + "id": 3943, "nodeType": "Block", "src": "4499:125:20", "statements": [ @@ -2023,7 +2023,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3903, + "id": 3934, "isConstant": false, "isLValue": false, "isPure": false, @@ -2034,32 +2034,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3899, + "id": 3930, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3891, + "referencedDeclaration": 3922, "src": "4517:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3900, + "id": 3931, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_values", "nodeType": "MemberAccess", - "referencedDeclaration": 3731, + "referencedDeclaration": 3762, "src": "4517:11:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 3901, + "id": 3932, "isConstant": false, "isLValue": false, "isPure": false, @@ -2077,11 +2077,11 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 3902, + "id": 3933, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3893, + "referencedDeclaration": 3924, "src": "4538:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2097,7 +2097,7 @@ { "argumentTypes": null, "hexValue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", - "id": 3904, + "id": 3935, "isConstant": false, "isLValue": false, "isPure": true, @@ -2124,7 +2124,7 @@ "typeString": "literal_string \"EnumerableSet: index out of bounds\"" } ], - "id": 3898, + "id": 3929, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2138,7 +2138,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 3905, + "id": 3936, "isConstant": false, "isLValue": false, "isPure": false, @@ -2153,7 +2153,7 @@ "typeString": "tuple()" } }, - "id": 3906, + "id": 3937, "nodeType": "ExpressionStatement", "src": "4509:73:20" }, @@ -2164,39 +2164,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3907, + "id": 3938, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3891, + "referencedDeclaration": 3922, "src": "4599:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3908, + "id": 3939, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_values", "nodeType": "MemberAccess", - "referencedDeclaration": 3731, + "referencedDeclaration": 3762, "src": "4599:11:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 3910, + "id": 3941, "indexExpression": { "argumentTypes": null, - "id": 3909, + "id": 3940, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3893, + "referencedDeclaration": 3924, "src": "4611:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2214,20 +2214,20 @@ "typeString": "bytes32" } }, - "functionReturnParameters": 3897, - "id": 3911, + "functionReturnParameters": 3928, + "id": 3942, "nodeType": "Return", "src": "4592:25:20" } ] }, "documentation": { - "id": 3889, + "id": 3920, "nodeType": "StructuredDocumentation", "src": "4096:322:20", "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." }, - "id": 3913, + "id": 3944, "implemented": true, "kind": "function", "modifiers": [], @@ -2235,33 +2235,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3894, + "id": 3925, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3891, + "id": 3922, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3913, + "scope": 3944, "src": "4436:15:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" }, "typeName": { "contractScope": null, - "id": 3890, + "id": 3921, "name": "Set", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3736, + "referencedDeclaration": 3767, "src": "4436:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" } }, @@ -2270,12 +2270,12 @@ }, { "constant": false, - "id": 3893, + "id": 3924, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3913, + "scope": 3944, "src": "4453:13:20", "stateVariable": false, "storageLocation": "default", @@ -2284,7 +2284,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3892, + "id": 3923, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4453:7:20", @@ -2300,17 +2300,17 @@ "src": "4435:32:20" }, "returnParameters": { - "id": 3897, + "id": 3928, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3896, + "id": 3927, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3913, + "scope": 3944, "src": "4490:7:20", "stateVariable": false, "storageLocation": "default", @@ -2319,7 +2319,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3895, + "id": 3926, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4490:7:20", @@ -2334,7 +2334,7 @@ ], "src": "4489:9:20" }, - "scope": 4120, + "scope": 4151, "src": "4423:201:20", "stateMutability": "view", "virtual": false, @@ -2342,32 +2342,32 @@ }, { "canonicalName": "EnumerableSet.AddressSet", - "id": 3916, + "id": 3947, "members": [ { "constant": false, - "id": 3915, + "id": 3946, "mutability": "mutable", "name": "_inner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3916, + "scope": 3947, "src": "4677:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" }, "typeName": { "contractScope": null, - "id": 3914, + "id": 3945, "name": "Set", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3736, + "referencedDeclaration": 3767, "src": "4677:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" } }, @@ -2377,13 +2377,13 @@ ], "name": "AddressSet", "nodeType": "StructDefinition", - "scope": 4120, + "scope": 4151, "src": "4649:45:20", "visibility": "public" }, { "body": { - "id": 3938, + "id": 3969, "nodeType": "Block", "src": "4940:65:20", "statements": [ @@ -2395,28 +2395,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3927, + "id": 3958, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3919, + "referencedDeclaration": 3950, "src": "4962:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet storage pointer" } }, - "id": 3928, + "id": 3959, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3915, + "referencedDeclaration": 3946, "src": "4962:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } }, @@ -2428,11 +2428,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3933, + "id": 3964, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3921, + "referencedDeclaration": 3952, "src": "4990:5:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2447,7 +2447,7 @@ "typeString": "address" } ], - "id": 3932, + "id": 3963, "isConstant": false, "isLValue": false, "isPure": true, @@ -2459,7 +2459,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 3931, + "id": 3962, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4982:7:20", @@ -2469,7 +2469,7 @@ } } }, - "id": 3934, + "id": 3965, "isConstant": false, "isLValue": false, "isPure": false, @@ -2492,7 +2492,7 @@ "typeString": "uint256" } ], - "id": 3930, + "id": 3961, "isConstant": false, "isLValue": false, "isPure": true, @@ -2504,7 +2504,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 3929, + "id": 3960, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4974:7:20", @@ -2514,7 +2514,7 @@ } } }, - "id": 3935, + "id": 3966, "isConstant": false, "isLValue": false, "isPure": false, @@ -2533,7 +2533,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" }, { @@ -2541,18 +2541,18 @@ "typeString": "bytes32" } ], - "id": 3926, + "id": 3957, "name": "_add", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3777, + "referencedDeclaration": 3808, "src": "4957:4:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$3736_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$3767_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" } }, - "id": 3936, + "id": 3967, "isConstant": false, "isLValue": false, "isPure": false, @@ -2567,20 +2567,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 3925, - "id": 3937, + "functionReturnParameters": 3956, + "id": 3968, "nodeType": "Return", "src": "4950:48:20" } ] }, "documentation": { - "id": 3917, + "id": 3948, "nodeType": "StructuredDocumentation", "src": "4700:159:20", "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." }, - "id": 3939, + "id": 3970, "implemented": true, "kind": "function", "modifiers": [], @@ -2588,33 +2588,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3922, + "id": 3953, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3919, + "id": 3950, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3939, + "scope": 3970, "src": "4877:22:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" }, "typeName": { "contractScope": null, - "id": 3918, + "id": 3949, "name": "AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, + "referencedDeclaration": 3947, "src": "4877:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } }, @@ -2623,12 +2623,12 @@ }, { "constant": false, - "id": 3921, + "id": 3952, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3939, + "scope": 3970, "src": "4901:13:20", "stateVariable": false, "storageLocation": "default", @@ -2637,7 +2637,7 @@ "typeString": "address" }, "typeName": { - "id": 3920, + "id": 3951, "name": "address", "nodeType": "ElementaryTypeName", "src": "4901:7:20", @@ -2654,17 +2654,17 @@ "src": "4876:39:20" }, "returnParameters": { - "id": 3925, + "id": 3956, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3924, + "id": 3955, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3939, + "scope": 3970, "src": "4934:4:20", "stateVariable": false, "storageLocation": "default", @@ -2673,7 +2673,7 @@ "typeString": "bool" }, "typeName": { - "id": 3923, + "id": 3954, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4934:4:20", @@ -2688,7 +2688,7 @@ ], "src": "4933:6:20" }, - "scope": 4120, + "scope": 4151, "src": "4864:141:20", "stateMutability": "nonpayable", "virtual": false, @@ -2696,7 +2696,7 @@ }, { "body": { - "id": 3961, + "id": 3992, "nodeType": "Block", "src": "5252:68:20", "statements": [ @@ -2708,28 +2708,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3950, + "id": 3981, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3942, + "referencedDeclaration": 3973, "src": "5277:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet storage pointer" } }, - "id": 3951, + "id": 3982, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3915, + "referencedDeclaration": 3946, "src": "5277:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } }, @@ -2741,11 +2741,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3956, + "id": 3987, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3944, + "referencedDeclaration": 3975, "src": "5305:5:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2760,7 +2760,7 @@ "typeString": "address" } ], - "id": 3955, + "id": 3986, "isConstant": false, "isLValue": false, "isPure": true, @@ -2772,7 +2772,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 3954, + "id": 3985, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5297:7:20", @@ -2782,7 +2782,7 @@ } } }, - "id": 3957, + "id": 3988, "isConstant": false, "isLValue": false, "isPure": false, @@ -2805,7 +2805,7 @@ "typeString": "uint256" } ], - "id": 3953, + "id": 3984, "isConstant": false, "isLValue": false, "isPure": true, @@ -2817,7 +2817,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 3952, + "id": 3983, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5289:7:20", @@ -2827,7 +2827,7 @@ } } }, - "id": 3958, + "id": 3989, "isConstant": false, "isLValue": false, "isPure": false, @@ -2846,7 +2846,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" }, { @@ -2854,18 +2854,18 @@ "typeString": "bytes32" } ], - "id": 3949, + "id": 3980, "name": "_remove", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3857, + "referencedDeclaration": 3888, "src": "5269:7:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$3736_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$3767_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" } }, - "id": 3959, + "id": 3990, "isConstant": false, "isLValue": false, "isPure": false, @@ -2880,20 +2880,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 3948, - "id": 3960, + "functionReturnParameters": 3979, + "id": 3991, "nodeType": "Return", "src": "5262:51:20" } ] }, "documentation": { - "id": 3940, + "id": 3971, "nodeType": "StructuredDocumentation", "src": "5011:157:20", "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." }, - "id": 3962, + "id": 3993, "implemented": true, "kind": "function", "modifiers": [], @@ -2901,33 +2901,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3945, + "id": 3976, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3942, + "id": 3973, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3962, + "scope": 3993, "src": "5189:22:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" }, "typeName": { "contractScope": null, - "id": 3941, + "id": 3972, "name": "AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, + "referencedDeclaration": 3947, "src": "5189:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } }, @@ -2936,12 +2936,12 @@ }, { "constant": false, - "id": 3944, + "id": 3975, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3962, + "scope": 3993, "src": "5213:13:20", "stateVariable": false, "storageLocation": "default", @@ -2950,7 +2950,7 @@ "typeString": "address" }, "typeName": { - "id": 3943, + "id": 3974, "name": "address", "nodeType": "ElementaryTypeName", "src": "5213:7:20", @@ -2967,17 +2967,17 @@ "src": "5188:39:20" }, "returnParameters": { - "id": 3948, + "id": 3979, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3947, + "id": 3978, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3962, + "scope": 3993, "src": "5246:4:20", "stateVariable": false, "storageLocation": "default", @@ -2986,7 +2986,7 @@ "typeString": "bool" }, "typeName": { - "id": 3946, + "id": 3977, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5246:4:20", @@ -3001,7 +3001,7 @@ ], "src": "5245:6:20" }, - "scope": 4120, + "scope": 4151, "src": "5173:147:20", "stateMutability": "nonpayable", "virtual": false, @@ -3009,7 +3009,7 @@ }, { "body": { - "id": 3984, + "id": 4015, "nodeType": "Block", "src": "5487:70:20", "statements": [ @@ -3021,28 +3021,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3973, + "id": 4004, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3965, + "referencedDeclaration": 3996, "src": "5514:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet storage pointer" } }, - "id": 3974, + "id": 4005, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3915, + "referencedDeclaration": 3946, "src": "5514:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } }, @@ -3054,11 +3054,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3979, + "id": 4010, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3967, + "referencedDeclaration": 3998, "src": "5542:5:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3073,7 +3073,7 @@ "typeString": "address" } ], - "id": 3978, + "id": 4009, "isConstant": false, "isLValue": false, "isPure": true, @@ -3085,7 +3085,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 3977, + "id": 4008, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5534:7:20", @@ -3095,7 +3095,7 @@ } } }, - "id": 3980, + "id": 4011, "isConstant": false, "isLValue": false, "isPure": false, @@ -3118,7 +3118,7 @@ "typeString": "uint256" } ], - "id": 3976, + "id": 4007, "isConstant": false, "isLValue": false, "isPure": true, @@ -3130,7 +3130,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 3975, + "id": 4006, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5526:7:20", @@ -3140,7 +3140,7 @@ } } }, - "id": 3981, + "id": 4012, "isConstant": false, "isLValue": false, "isPure": false, @@ -3159,7 +3159,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" }, { @@ -3167,18 +3167,18 @@ "typeString": "bytes32" } ], - "id": 3972, + "id": 4003, "name": "_contains", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3875, + "referencedDeclaration": 3906, "src": "5504:9:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3736_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3767_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" } }, - "id": 3982, + "id": 4013, "isConstant": false, "isLValue": false, "isPure": false, @@ -3193,20 +3193,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 3971, - "id": 3983, + "functionReturnParameters": 4002, + "id": 4014, "nodeType": "Return", "src": "5497:53:20" } ] }, "documentation": { - "id": 3963, + "id": 3994, "nodeType": "StructuredDocumentation", "src": "5326:70:20", "text": " @dev Returns true if the value is in the set. O(1)." }, - "id": 3985, + "id": 4016, "implemented": true, "kind": "function", "modifiers": [], @@ -3214,33 +3214,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3968, + "id": 3999, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3965, + "id": 3996, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3985, + "scope": 4016, "src": "5419:22:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" }, "typeName": { "contractScope": null, - "id": 3964, + "id": 3995, "name": "AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, + "referencedDeclaration": 3947, "src": "5419:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } }, @@ -3249,12 +3249,12 @@ }, { "constant": false, - "id": 3967, + "id": 3998, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3985, + "scope": 4016, "src": "5443:13:20", "stateVariable": false, "storageLocation": "default", @@ -3263,7 +3263,7 @@ "typeString": "address" }, "typeName": { - "id": 3966, + "id": 3997, "name": "address", "nodeType": "ElementaryTypeName", "src": "5443:7:20", @@ -3280,17 +3280,17 @@ "src": "5418:39:20" }, "returnParameters": { - "id": 3971, + "id": 4002, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3970, + "id": 4001, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3985, + "scope": 4016, "src": "5481:4:20", "stateVariable": false, "storageLocation": "default", @@ -3299,7 +3299,7 @@ "typeString": "bool" }, "typeName": { - "id": 3969, + "id": 4000, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5481:4:20", @@ -3314,7 +3314,7 @@ ], "src": "5480:6:20" }, - "scope": 4120, + "scope": 4151, "src": "5401:156:20", "stateMutability": "view", "virtual": false, @@ -3322,7 +3322,7 @@ }, { "body": { - "id": 3998, + "id": 4029, "nodeType": "Block", "src": "5710:43:20", "statements": [ @@ -3334,28 +3334,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3994, + "id": 4025, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3988, + "referencedDeclaration": 4019, "src": "5735:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet storage pointer" } }, - "id": 3995, + "id": 4026, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3915, + "referencedDeclaration": 3946, "src": "5735:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } } @@ -3363,22 +3363,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } ], - "id": 3993, + "id": 4024, "name": "_length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3888, + "referencedDeclaration": 3919, "src": "5727:7:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3736_storage_ptr_$returns$_t_uint256_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3767_storage_ptr_$returns$_t_uint256_$", "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" } }, - "id": 3996, + "id": 4027, "isConstant": false, "isLValue": false, "isPure": false, @@ -3393,20 +3393,20 @@ "typeString": "uint256" } }, - "functionReturnParameters": 3992, - "id": 3997, + "functionReturnParameters": 4023, + "id": 4028, "nodeType": "Return", "src": "5720:26:20" } ] }, "documentation": { - "id": 3986, + "id": 4017, "nodeType": "StructuredDocumentation", "src": "5563:70:20", "text": " @dev Returns the number of values in the set. O(1)." }, - "id": 3999, + "id": 4030, "implemented": true, "kind": "function", "modifiers": [], @@ -3414,33 +3414,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3989, + "id": 4020, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3988, + "id": 4019, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3999, + "scope": 4030, "src": "5654:22:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" }, "typeName": { "contractScope": null, - "id": 3987, + "id": 4018, "name": "AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, + "referencedDeclaration": 3947, "src": "5654:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } }, @@ -3451,17 +3451,17 @@ "src": "5653:24:20" }, "returnParameters": { - "id": 3992, + "id": 4023, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3991, + "id": 4022, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3999, + "scope": 4030, "src": "5701:7:20", "stateVariable": false, "storageLocation": "default", @@ -3470,7 +3470,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3990, + "id": 4021, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5701:7:20", @@ -3485,7 +3485,7 @@ ], "src": "5700:9:20" }, - "scope": 4120, + "scope": 4151, "src": "5638:115:20", "stateMutability": "view", "virtual": false, @@ -3493,7 +3493,7 @@ }, { "body": { - "id": 4021, + "id": 4052, "nodeType": "Block", "src": "6168:64:20", "statements": [ @@ -3511,38 +3511,38 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4014, + "id": 4045, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, + "referencedDeclaration": 4033, "src": "6205:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet storage pointer" } }, - "id": 4015, + "id": 4046, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3915, + "referencedDeclaration": 3946, "src": "6205:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } }, { "argumentTypes": null, - "id": 4016, + "id": 4047, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4004, + "referencedDeclaration": 4035, "src": "6217:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3553,7 +3553,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" }, { @@ -3561,18 +3561,18 @@ "typeString": "uint256" } ], - "id": 4013, + "id": 4044, "name": "_at", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3913, + "referencedDeclaration": 3944, "src": "6201:3:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3736_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3767_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" } }, - "id": 4017, + "id": 4048, "isConstant": false, "isLValue": false, "isPure": false, @@ -3595,7 +3595,7 @@ "typeString": "bytes32" } ], - "id": 4012, + "id": 4043, "isConstant": false, "isLValue": false, "isPure": true, @@ -3607,7 +3607,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 4011, + "id": 4042, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6193:7:20", @@ -3617,7 +3617,7 @@ } } }, - "id": 4018, + "id": 4049, "isConstant": false, "isLValue": false, "isPure": false, @@ -3640,7 +3640,7 @@ "typeString": "uint256" } ], - "id": 4010, + "id": 4041, "isConstant": false, "isLValue": false, "isPure": true, @@ -3652,7 +3652,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 4009, + "id": 4040, "name": "address", "nodeType": "ElementaryTypeName", "src": "6185:7:20", @@ -3662,7 +3662,7 @@ } } }, - "id": 4019, + "id": 4050, "isConstant": false, "isLValue": false, "isPure": false, @@ -3677,20 +3677,20 @@ "typeString": "address payable" } }, - "functionReturnParameters": 4008, - "id": 4020, + "functionReturnParameters": 4039, + "id": 4051, "nodeType": "Return", "src": "6178:47:20" } ] }, "documentation": { - "id": 4000, + "id": 4031, "nodeType": "StructuredDocumentation", "src": "5758:322:20", "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." }, - "id": 4022, + "id": 4053, "implemented": true, "kind": "function", "modifiers": [], @@ -3698,33 +3698,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4005, + "id": 4036, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4002, + "id": 4033, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4022, + "scope": 4053, "src": "6097:22:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" }, "typeName": { "contractScope": null, - "id": 4001, + "id": 4032, "name": "AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, + "referencedDeclaration": 3947, "src": "6097:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } }, @@ -3733,12 +3733,12 @@ }, { "constant": false, - "id": 4004, + "id": 4035, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4022, + "scope": 4053, "src": "6121:13:20", "stateVariable": false, "storageLocation": "default", @@ -3747,7 +3747,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4003, + "id": 4034, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6121:7:20", @@ -3763,17 +3763,17 @@ "src": "6096:39:20" }, "returnParameters": { - "id": 4008, + "id": 4039, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4007, + "id": 4038, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4022, + "scope": 4053, "src": "6159:7:20", "stateVariable": false, "storageLocation": "default", @@ -3782,7 +3782,7 @@ "typeString": "address" }, "typeName": { - "id": 4006, + "id": 4037, "name": "address", "nodeType": "ElementaryTypeName", "src": "6159:7:20", @@ -3798,7 +3798,7 @@ ], "src": "6158:9:20" }, - "scope": 4120, + "scope": 4151, "src": "6085:147:20", "stateMutability": "view", "virtual": false, @@ -3806,32 +3806,32 @@ }, { "canonicalName": "EnumerableSet.UintSet", - "id": 4025, + "id": 4056, "members": [ { "constant": false, - "id": 4024, + "id": 4055, "mutability": "mutable", "name": "_inner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4025, + "scope": 4056, "src": "6280:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" }, "typeName": { "contractScope": null, - "id": 4023, + "id": 4054, "name": "Set", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3736, + "referencedDeclaration": 3767, "src": "6280:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" } }, @@ -3841,13 +3841,13 @@ ], "name": "UintSet", "nodeType": "StructDefinition", - "scope": 4120, + "scope": 4151, "src": "6255:42:20", "visibility": "public" }, { "body": { - "id": 4044, + "id": 4075, "nodeType": "Block", "src": "6540:56:20", "statements": [ @@ -3859,28 +3859,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4036, + "id": 4067, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4028, + "referencedDeclaration": 4059, "src": "6562:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet storage pointer" } }, - "id": 4037, + "id": 4068, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 4024, + "referencedDeclaration": 4055, "src": "6562:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } }, @@ -3889,11 +3889,11 @@ "arguments": [ { "argumentTypes": null, - "id": 4040, + "id": 4071, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4030, + "referencedDeclaration": 4061, "src": "6582:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3908,7 +3908,7 @@ "typeString": "uint256" } ], - "id": 4039, + "id": 4070, "isConstant": false, "isLValue": false, "isPure": true, @@ -3920,7 +3920,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 4038, + "id": 4069, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6574:7:20", @@ -3930,7 +3930,7 @@ } } }, - "id": 4041, + "id": 4072, "isConstant": false, "isLValue": false, "isPure": false, @@ -3949,7 +3949,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" }, { @@ -3957,18 +3957,18 @@ "typeString": "bytes32" } ], - "id": 4035, + "id": 4066, "name": "_add", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3777, + "referencedDeclaration": 3808, "src": "6557:4:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$3736_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$3767_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" } }, - "id": 4042, + "id": 4073, "isConstant": false, "isLValue": false, "isPure": false, @@ -3983,20 +3983,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 4034, - "id": 4043, + "functionReturnParameters": 4065, + "id": 4074, "nodeType": "Return", "src": "6550:39:20" } ] }, "documentation": { - "id": 4026, + "id": 4057, "nodeType": "StructuredDocumentation", "src": "6303:159:20", "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." }, - "id": 4045, + "id": 4076, "implemented": true, "kind": "function", "modifiers": [], @@ -4004,33 +4004,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4031, + "id": 4062, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4028, + "id": 4059, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4045, + "scope": 4076, "src": "6480:19:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" }, "typeName": { "contractScope": null, - "id": 4027, + "id": 4058, "name": "UintSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4025, + "referencedDeclaration": 4056, "src": "6480:7:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" } }, @@ -4039,12 +4039,12 @@ }, { "constant": false, - "id": 4030, + "id": 4061, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4045, + "scope": 4076, "src": "6501:13:20", "stateVariable": false, "storageLocation": "default", @@ -4053,7 +4053,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4029, + "id": 4060, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6501:7:20", @@ -4069,17 +4069,17 @@ "src": "6479:36:20" }, "returnParameters": { - "id": 4034, + "id": 4065, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4033, + "id": 4064, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4045, + "scope": 4076, "src": "6534:4:20", "stateVariable": false, "storageLocation": "default", @@ -4088,7 +4088,7 @@ "typeString": "bool" }, "typeName": { - "id": 4032, + "id": 4063, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6534:4:20", @@ -4103,7 +4103,7 @@ ], "src": "6533:6:20" }, - "scope": 4120, + "scope": 4151, "src": "6467:129:20", "stateMutability": "nonpayable", "virtual": false, @@ -4111,7 +4111,7 @@ }, { "body": { - "id": 4064, + "id": 4095, "nodeType": "Block", "src": "6840:59:20", "statements": [ @@ -4123,28 +4123,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4056, + "id": 4087, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4048, + "referencedDeclaration": 4079, "src": "6865:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet storage pointer" } }, - "id": 4057, + "id": 4088, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 4024, + "referencedDeclaration": 4055, "src": "6865:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } }, @@ -4153,11 +4153,11 @@ "arguments": [ { "argumentTypes": null, - "id": 4060, + "id": 4091, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4050, + "referencedDeclaration": 4081, "src": "6885:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4172,7 +4172,7 @@ "typeString": "uint256" } ], - "id": 4059, + "id": 4090, "isConstant": false, "isLValue": false, "isPure": true, @@ -4184,7 +4184,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 4058, + "id": 4089, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6877:7:20", @@ -4194,7 +4194,7 @@ } } }, - "id": 4061, + "id": 4092, "isConstant": false, "isLValue": false, "isPure": false, @@ -4213,7 +4213,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" }, { @@ -4221,18 +4221,18 @@ "typeString": "bytes32" } ], - "id": 4055, + "id": 4086, "name": "_remove", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3857, + "referencedDeclaration": 3888, "src": "6857:7:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$3736_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$3767_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" } }, - "id": 4062, + "id": 4093, "isConstant": false, "isLValue": false, "isPure": false, @@ -4247,20 +4247,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 4054, - "id": 4063, + "functionReturnParameters": 4085, + "id": 4094, "nodeType": "Return", "src": "6850:42:20" } ] }, "documentation": { - "id": 4046, + "id": 4077, "nodeType": "StructuredDocumentation", "src": "6602:157:20", "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." }, - "id": 4065, + "id": 4096, "implemented": true, "kind": "function", "modifiers": [], @@ -4268,33 +4268,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4051, + "id": 4082, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4048, + "id": 4079, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4065, + "scope": 4096, "src": "6780:19:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" }, "typeName": { "contractScope": null, - "id": 4047, + "id": 4078, "name": "UintSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4025, + "referencedDeclaration": 4056, "src": "6780:7:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" } }, @@ -4303,12 +4303,12 @@ }, { "constant": false, - "id": 4050, + "id": 4081, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4065, + "scope": 4096, "src": "6801:13:20", "stateVariable": false, "storageLocation": "default", @@ -4317,7 +4317,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4049, + "id": 4080, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6801:7:20", @@ -4333,17 +4333,17 @@ "src": "6779:36:20" }, "returnParameters": { - "id": 4054, + "id": 4085, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4053, + "id": 4084, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4065, + "scope": 4096, "src": "6834:4:20", "stateVariable": false, "storageLocation": "default", @@ -4352,7 +4352,7 @@ "typeString": "bool" }, "typeName": { - "id": 4052, + "id": 4083, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6834:4:20", @@ -4367,7 +4367,7 @@ ], "src": "6833:6:20" }, - "scope": 4120, + "scope": 4151, "src": "6764:135:20", "stateMutability": "nonpayable", "virtual": false, @@ -4375,7 +4375,7 @@ }, { "body": { - "id": 4084, + "id": 4115, "nodeType": "Block", "src": "7063:61:20", "statements": [ @@ -4387,28 +4387,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4076, + "id": 4107, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4068, + "referencedDeclaration": 4099, "src": "7090:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet storage pointer" } }, - "id": 4077, + "id": 4108, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 4024, + "referencedDeclaration": 4055, "src": "7090:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } }, @@ -4417,11 +4417,11 @@ "arguments": [ { "argumentTypes": null, - "id": 4080, + "id": 4111, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4070, + "referencedDeclaration": 4101, "src": "7110:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4436,7 +4436,7 @@ "typeString": "uint256" } ], - "id": 4079, + "id": 4110, "isConstant": false, "isLValue": false, "isPure": true, @@ -4448,7 +4448,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 4078, + "id": 4109, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7102:7:20", @@ -4458,7 +4458,7 @@ } } }, - "id": 4081, + "id": 4112, "isConstant": false, "isLValue": false, "isPure": false, @@ -4477,7 +4477,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" }, { @@ -4485,18 +4485,18 @@ "typeString": "bytes32" } ], - "id": 4075, + "id": 4106, "name": "_contains", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3875, + "referencedDeclaration": 3906, "src": "7080:9:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3736_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3767_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" } }, - "id": 4082, + "id": 4113, "isConstant": false, "isLValue": false, "isPure": false, @@ -4511,20 +4511,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 4074, - "id": 4083, + "functionReturnParameters": 4105, + "id": 4114, "nodeType": "Return", "src": "7073:44:20" } ] }, "documentation": { - "id": 4066, + "id": 4097, "nodeType": "StructuredDocumentation", "src": "6905:70:20", "text": " @dev Returns true if the value is in the set. O(1)." }, - "id": 4085, + "id": 4116, "implemented": true, "kind": "function", "modifiers": [], @@ -4532,33 +4532,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4071, + "id": 4102, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4068, + "id": 4099, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4085, + "scope": 4116, "src": "6998:19:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" }, "typeName": { "contractScope": null, - "id": 4067, + "id": 4098, "name": "UintSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4025, + "referencedDeclaration": 4056, "src": "6998:7:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" } }, @@ -4567,12 +4567,12 @@ }, { "constant": false, - "id": 4070, + "id": 4101, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4085, + "scope": 4116, "src": "7019:13:20", "stateVariable": false, "storageLocation": "default", @@ -4581,7 +4581,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4069, + "id": 4100, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7019:7:20", @@ -4597,17 +4597,17 @@ "src": "6997:36:20" }, "returnParameters": { - "id": 4074, + "id": 4105, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4073, + "id": 4104, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4085, + "scope": 4116, "src": "7057:4:20", "stateVariable": false, "storageLocation": "default", @@ -4616,7 +4616,7 @@ "typeString": "bool" }, "typeName": { - "id": 4072, + "id": 4103, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7057:4:20", @@ -4631,7 +4631,7 @@ ], "src": "7056:6:20" }, - "scope": 4120, + "scope": 4151, "src": "6980:144:20", "stateMutability": "view", "virtual": false, @@ -4639,7 +4639,7 @@ }, { "body": { - "id": 4098, + "id": 4129, "nodeType": "Block", "src": "7274:43:20", "statements": [ @@ -4651,28 +4651,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4094, + "id": 4125, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4088, + "referencedDeclaration": 4119, "src": "7299:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet storage pointer" } }, - "id": 4095, + "id": 4126, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 4024, + "referencedDeclaration": 4055, "src": "7299:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } } @@ -4680,22 +4680,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } ], - "id": 4093, + "id": 4124, "name": "_length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3888, + "referencedDeclaration": 3919, "src": "7291:7:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3736_storage_ptr_$returns$_t_uint256_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3767_storage_ptr_$returns$_t_uint256_$", "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" } }, - "id": 4096, + "id": 4127, "isConstant": false, "isLValue": false, "isPure": false, @@ -4710,20 +4710,20 @@ "typeString": "uint256" } }, - "functionReturnParameters": 4092, - "id": 4097, + "functionReturnParameters": 4123, + "id": 4128, "nodeType": "Return", "src": "7284:26:20" } ] }, "documentation": { - "id": 4086, + "id": 4117, "nodeType": "StructuredDocumentation", "src": "7130:70:20", "text": " @dev Returns the number of values on the set. O(1)." }, - "id": 4099, + "id": 4130, "implemented": true, "kind": "function", "modifiers": [], @@ -4731,33 +4731,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4089, + "id": 4120, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4088, + "id": 4119, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4099, + "scope": 4130, "src": "7221:19:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" }, "typeName": { "contractScope": null, - "id": 4087, + "id": 4118, "name": "UintSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4025, + "referencedDeclaration": 4056, "src": "7221:7:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" } }, @@ -4768,17 +4768,17 @@ "src": "7220:21:20" }, "returnParameters": { - "id": 4092, + "id": 4123, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4091, + "id": 4122, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4099, + "scope": 4130, "src": "7265:7:20", "stateVariable": false, "storageLocation": "default", @@ -4787,7 +4787,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4090, + "id": 4121, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7265:7:20", @@ -4802,7 +4802,7 @@ ], "src": "7264:9:20" }, - "scope": 4120, + "scope": 4151, "src": "7205:112:20", "stateMutability": "view", "virtual": false, @@ -4810,7 +4810,7 @@ }, { "body": { - "id": 4118, + "id": 4149, "nodeType": "Block", "src": "7729:55:20", "statements": [ @@ -4825,38 +4825,38 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4112, + "id": 4143, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4102, + "referencedDeclaration": 4133, "src": "7758:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet storage pointer" } }, - "id": 4113, + "id": 4144, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 4024, + "referencedDeclaration": 4055, "src": "7758:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } }, { "argumentTypes": null, - "id": 4114, + "id": 4145, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4104, + "referencedDeclaration": 4135, "src": "7770:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4867,7 +4867,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" }, { @@ -4875,18 +4875,18 @@ "typeString": "uint256" } ], - "id": 4111, + "id": 4142, "name": "_at", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3913, + "referencedDeclaration": 3944, "src": "7754:3:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3736_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3767_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" } }, - "id": 4115, + "id": 4146, "isConstant": false, "isLValue": false, "isPure": false, @@ -4909,7 +4909,7 @@ "typeString": "bytes32" } ], - "id": 4110, + "id": 4141, "isConstant": false, "isLValue": false, "isPure": true, @@ -4921,7 +4921,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 4109, + "id": 4140, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7746:7:20", @@ -4931,7 +4931,7 @@ } } }, - "id": 4116, + "id": 4147, "isConstant": false, "isLValue": false, "isPure": false, @@ -4946,20 +4946,20 @@ "typeString": "uint256" } }, - "functionReturnParameters": 4108, - "id": 4117, + "functionReturnParameters": 4139, + "id": 4148, "nodeType": "Return", "src": "7739:38:20" } ] }, "documentation": { - "id": 4100, + "id": 4131, "nodeType": "StructuredDocumentation", "src": "7322:322:20", "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." }, - "id": 4119, + "id": 4150, "implemented": true, "kind": "function", "modifiers": [], @@ -4967,33 +4967,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4105, + "id": 4136, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4102, + "id": 4133, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4119, + "scope": 4150, "src": "7661:19:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" }, "typeName": { "contractScope": null, - "id": 4101, + "id": 4132, "name": "UintSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4025, + "referencedDeclaration": 4056, "src": "7661:7:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" } }, @@ -5002,12 +5002,12 @@ }, { "constant": false, - "id": 4104, + "id": 4135, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4119, + "scope": 4150, "src": "7682:13:20", "stateVariable": false, "storageLocation": "default", @@ -5016,7 +5016,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4103, + "id": 4134, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7682:7:20", @@ -5032,17 +5032,17 @@ "src": "7660:36:20" }, "returnParameters": { - "id": 4108, + "id": 4139, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4107, + "id": 4138, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4119, + "scope": 4150, "src": "7720:7:20", "stateVariable": false, "storageLocation": "default", @@ -5051,7 +5051,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4106, + "id": 4137, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7720:7:20", @@ -5066,14 +5066,14 @@ ], "src": "7719:9:20" }, - "scope": 4120, + "scope": 4151, "src": "7649:135:20", "stateMutability": "view", "virtual": false, "visibility": "internal" } ], - "scope": 4121, + "scope": 4152, "src": "724:7062:20" } ], @@ -5083,15 +5083,15 @@ "absolutePath": "@openzeppelin/contracts/utils/EnumerableSet.sol", "exportedSymbols": { "EnumerableSet": [ - 4120 + 4151 ] }, - "id": 4121, + "id": 4152, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 3727, + "id": 3758, "literals": [ "solidity", "^", @@ -5107,31 +5107,31 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 3728, + "id": 3759, "nodeType": "StructuredDocumentation", "src": "58:665:20", "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.0.0, only sets of type `address` (`AddressSet`) and `uint256`\n (`UintSet`) are supported." }, "fullyImplemented": true, - "id": 4120, + "id": 4151, "linearizedBaseContracts": [ - 4120 + 4151 ], "name": "EnumerableSet", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "EnumerableSet.Set", - "id": 3736, + "id": 3767, "members": [ { "constant": false, - "id": 3731, + "id": 3762, "mutability": "mutable", "name": "_values", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3736, + "scope": 3767, "src": "1246:17:20", "stateVariable": false, "storageLocation": "default", @@ -5141,7 +5141,7 @@ }, "typeName": { "baseType": { - "id": 3729, + "id": 3760, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1246:7:20", @@ -5150,7 +5150,7 @@ "typeString": "bytes32" } }, - "id": 3730, + "id": 3761, "length": null, "nodeType": "ArrayTypeName", "src": "1246:9:20", @@ -5164,12 +5164,12 @@ }, { "constant": false, - "id": 3735, + "id": 3766, "mutability": "mutable", "name": "_indexes", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3736, + "scope": 3767, "src": "1397:37:20", "stateVariable": false, "storageLocation": "default", @@ -5178,9 +5178,9 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 3734, + "id": 3765, "keyType": { - "id": 3732, + "id": 3763, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1406:7:20", @@ -5196,7 +5196,7 @@ "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 3733, + "id": 3764, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1417:7:20", @@ -5212,20 +5212,20 @@ ], "name": "Set", "nodeType": "StructDefinition", - "scope": 4120, + "scope": 4151, "src": "1192:249:20", "visibility": "public" }, { "body": { - "id": 3776, + "id": 3807, "nodeType": "Block", "src": "1680:335:20", "statements": [ { "condition": { "argumentTypes": null, - "id": 3750, + "id": 3781, "isConstant": false, "isLValue": false, "isPure": false, @@ -5239,24 +5239,24 @@ "arguments": [ { "argumentTypes": null, - "id": 3747, + "id": 3778, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3739, + "referencedDeclaration": 3770, "src": "1705:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, { "argumentTypes": null, - "id": 3748, + "id": 3779, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3741, + "referencedDeclaration": 3772, "src": "1710:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -5267,7 +5267,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" }, { @@ -5275,18 +5275,18 @@ "typeString": "bytes32" } ], - "id": 3746, + "id": 3777, "name": "_contains", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3875, + "referencedDeclaration": 3906, "src": "1695:9:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3736_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3767_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" } }, - "id": 3749, + "id": 3780, "isConstant": false, "isLValue": false, "isPure": false, @@ -5307,7 +5307,7 @@ } }, "falseBody": { - "id": 3774, + "id": 3805, "nodeType": "Block", "src": "1972:37:20", "statements": [ @@ -5315,7 +5315,7 @@ "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 3772, + "id": 3803, "isConstant": false, "isLValue": false, "isPure": true, @@ -5330,18 +5330,18 @@ }, "value": "false" }, - "functionReturnParameters": 3745, - "id": 3773, + "functionReturnParameters": 3776, + "id": 3804, "nodeType": "Return", "src": "1986:12:20" } ] }, - "id": 3775, + "id": 3806, "nodeType": "IfStatement", "src": "1690:319:20", "trueBody": { - "id": 3771, + "id": 3802, "nodeType": "Block", "src": "1718:248:20", "statements": [ @@ -5351,11 +5351,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3756, + "id": 3787, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3741, + "referencedDeclaration": 3772, "src": "1749:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -5374,32 +5374,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3751, + "id": 3782, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3739, + "referencedDeclaration": 3770, "src": "1732:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3754, + "id": 3785, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_values", "nodeType": "MemberAccess", - "referencedDeclaration": 3731, + "referencedDeclaration": 3762, "src": "1732:11:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 3755, + "id": 3786, "isConstant": false, "isLValue": false, "isPure": false, @@ -5413,7 +5413,7 @@ "typeString": "function (bytes32)" } }, - "id": 3757, + "id": 3788, "isConstant": false, "isLValue": false, "isPure": false, @@ -5428,14 +5428,14 @@ "typeString": "tuple()" } }, - "id": 3758, + "id": 3789, "nodeType": "ExpressionStatement", "src": "1732:23:20" }, { "expression": { "argumentTypes": null, - "id": 3767, + "id": 3798, "isConstant": false, "isLValue": false, "isPure": false, @@ -5446,39 +5446,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3759, + "id": 3790, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3739, + "referencedDeclaration": 3770, "src": "1890:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3762, + "id": 3793, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3735, + "referencedDeclaration": 3766, "src": "1890:12:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3763, + "id": 3794, "indexExpression": { "argumentTypes": null, - "id": 3761, + "id": 3792, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3741, + "referencedDeclaration": 3772, "src": "1903:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -5504,32 +5504,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3764, + "id": 3795, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3739, + "referencedDeclaration": 3770, "src": "1912:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3765, + "id": 3796, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_values", "nodeType": "MemberAccess", - "referencedDeclaration": 3731, + "referencedDeclaration": 3762, "src": "1912:11:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 3766, + "id": 3797, "isConstant": false, "isLValue": false, "isPure": false, @@ -5549,7 +5549,7 @@ "typeString": "uint256" } }, - "id": 3768, + "id": 3799, "nodeType": "ExpressionStatement", "src": "1890:40:20" }, @@ -5557,7 +5557,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3769, + "id": 3800, "isConstant": false, "isLValue": false, "isPure": true, @@ -5572,8 +5572,8 @@ }, "value": "true" }, - "functionReturnParameters": 3745, - "id": 3770, + "functionReturnParameters": 3776, + "id": 3801, "nodeType": "Return", "src": "1944:11:20" } @@ -5583,12 +5583,12 @@ ] }, "documentation": { - "id": 3737, + "id": 3768, "nodeType": "StructuredDocumentation", "src": "1447:159:20", "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." }, - "id": 3777, + "id": 3808, "implemented": true, "kind": "function", "modifiers": [], @@ -5596,33 +5596,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3742, + "id": 3773, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3739, + "id": 3770, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3777, + "scope": 3808, "src": "1625:15:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" }, "typeName": { "contractScope": null, - "id": 3738, + "id": 3769, "name": "Set", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3736, + "referencedDeclaration": 3767, "src": "1625:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" } }, @@ -5631,12 +5631,12 @@ }, { "constant": false, - "id": 3741, + "id": 3772, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3777, + "scope": 3808, "src": "1642:13:20", "stateVariable": false, "storageLocation": "default", @@ -5645,7 +5645,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3740, + "id": 3771, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1642:7:20", @@ -5661,17 +5661,17 @@ "src": "1624:32:20" }, "returnParameters": { - "id": 3745, + "id": 3776, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3744, + "id": 3775, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3777, + "scope": 3808, "src": "1674:4:20", "stateVariable": false, "storageLocation": "default", @@ -5680,7 +5680,7 @@ "typeString": "bool" }, "typeName": { - "id": 3743, + "id": 3774, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1674:4:20", @@ -5695,7 +5695,7 @@ ], "src": "1673:6:20" }, - "scope": 4120, + "scope": 4151, "src": "1611:404:20", "stateMutability": "nonpayable", "virtual": false, @@ -5703,23 +5703,23 @@ }, { "body": { - "id": 3856, + "id": 3887, "nodeType": "Block", "src": "2255:1440:20", "statements": [ { "assignments": [ - 3788 + 3819 ], "declarations": [ { "constant": false, - "id": 3788, + "id": 3819, "mutability": "mutable", "name": "valueIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3856, + "scope": 3887, "src": "2365:18:20", "stateVariable": false, "storageLocation": "default", @@ -5728,7 +5728,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3787, + "id": 3818, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2365:7:20", @@ -5741,46 +5741,46 @@ "visibility": "internal" } ], - "id": 3793, + "id": 3824, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3789, + "id": 3820, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 3811, "src": "2386:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3790, + "id": 3821, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3735, + "referencedDeclaration": 3766, "src": "2386:12:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3792, + "id": 3823, "indexExpression": { "argumentTypes": null, - "id": 3791, + "id": 3822, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3782, + "referencedDeclaration": 3813, "src": "2399:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -5808,18 +5808,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3796, + "id": 3827, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3794, + "id": 3825, "name": "valueIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3788, + "referencedDeclaration": 3819, "src": "2420:10:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5831,7 +5831,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3795, + "id": 3826, "isConstant": false, "isLValue": false, "isPure": true, @@ -5853,7 +5853,7 @@ } }, "falseBody": { - "id": 3854, + "id": 3885, "nodeType": "Block", "src": "3652:37:20", "statements": [ @@ -5861,7 +5861,7 @@ "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 3852, + "id": 3883, "isConstant": false, "isLValue": false, "isPure": true, @@ -5876,34 +5876,34 @@ }, "value": "false" }, - "functionReturnParameters": 3786, - "id": 3853, + "functionReturnParameters": 3817, + "id": 3884, "nodeType": "Return", "src": "3666:12:20" } ] }, - "id": 3855, + "id": 3886, "nodeType": "IfStatement", "src": "2416:1273:20", "trueBody": { - "id": 3851, + "id": 3882, "nodeType": "Block", "src": "2437:1209:20", "statements": [ { "assignments": [ - 3798 + 3829 ], "declarations": [ { "constant": false, - "id": 3798, + "id": 3829, "mutability": "mutable", "name": "toDeleteIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3851, + "scope": 3882, "src": "2777:21:20", "stateVariable": false, "storageLocation": "default", @@ -5912,7 +5912,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3797, + "id": 3828, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2777:7:20", @@ -5925,25 +5925,25 @@ "visibility": "internal" } ], - "id": 3802, + "id": 3833, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3801, + "id": 3832, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3799, + "id": 3830, "name": "valueIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3788, + "referencedDeclaration": 3819, "src": "2801:10:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5955,7 +5955,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 3800, + "id": 3831, "isConstant": false, "isLValue": false, "isPure": true, @@ -5981,17 +5981,17 @@ }, { "assignments": [ - 3804 + 3835 ], "declarations": [ { "constant": false, - "id": 3804, + "id": 3835, "mutability": "mutable", "name": "lastIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3851, + "scope": 3882, "src": "2829:17:20", "stateVariable": false, "storageLocation": "default", @@ -6000,7 +6000,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3803, + "id": 3834, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2829:7:20", @@ -6013,14 +6013,14 @@ "visibility": "internal" } ], - "id": 3810, + "id": 3841, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3809, + "id": 3840, "isConstant": false, "isLValue": false, "isPure": false, @@ -6031,32 +6031,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3805, + "id": 3836, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 3811, "src": "2849:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3806, + "id": 3837, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_values", "nodeType": "MemberAccess", - "referencedDeclaration": 3731, + "referencedDeclaration": 3762, "src": "2849:11:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 3807, + "id": 3838, "isConstant": false, "isLValue": false, "isPure": false, @@ -6075,7 +6075,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 3808, + "id": 3839, "isConstant": false, "isLValue": false, "isPure": true, @@ -6101,17 +6101,17 @@ }, { "assignments": [ - 3812 + 3843 ], "declarations": [ { "constant": false, - "id": 3812, + "id": 3843, "mutability": "mutable", "name": "lastvalue", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3851, + "scope": 3882, "src": "3111:17:20", "stateVariable": false, "storageLocation": "default", @@ -6120,7 +6120,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3811, + "id": 3842, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3111:7:20", @@ -6133,46 +6133,46 @@ "visibility": "internal" } ], - "id": 3817, + "id": 3848, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3813, + "id": 3844, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 3811, "src": "3131:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3814, + "id": 3845, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_values", "nodeType": "MemberAccess", - "referencedDeclaration": 3731, + "referencedDeclaration": 3762, "src": "3131:11:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 3816, + "id": 3847, "indexExpression": { "argumentTypes": null, - "id": 3815, + "id": 3846, "name": "lastIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3804, + "referencedDeclaration": 3835, "src": "3143:9:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6196,7 +6196,7 @@ { "expression": { "argumentTypes": null, - "id": 3824, + "id": 3855, "isConstant": false, "isLValue": false, "isPure": false, @@ -6207,39 +6207,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3818, + "id": 3849, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 3811, "src": "3245:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3821, + "id": 3852, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_values", "nodeType": "MemberAccess", - "referencedDeclaration": 3731, + "referencedDeclaration": 3762, "src": "3245:11:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 3822, + "id": 3853, "indexExpression": { "argumentTypes": null, - "id": 3820, + "id": 3851, "name": "toDeleteIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3798, + "referencedDeclaration": 3829, "src": "3257:13:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6261,11 +6261,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3823, + "id": 3854, "name": "lastvalue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3812, + "referencedDeclaration": 3843, "src": "3274:9:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6278,14 +6278,14 @@ "typeString": "bytes32" } }, - "id": 3825, + "id": 3856, "nodeType": "ExpressionStatement", "src": "3245:38:20" }, { "expression": { "argumentTypes": null, - "id": 3834, + "id": 3865, "isConstant": false, "isLValue": false, "isPure": false, @@ -6296,39 +6296,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3826, + "id": 3857, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 3811, "src": "3349:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3829, + "id": 3860, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3735, + "referencedDeclaration": 3766, "src": "3349:12:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3830, + "id": 3861, "indexExpression": { "argumentTypes": null, - "id": 3828, + "id": 3859, "name": "lastvalue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3812, + "referencedDeclaration": 3843, "src": "3362:9:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6354,18 +6354,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3833, + "id": 3864, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3831, + "id": 3862, "name": "toDeleteIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3798, + "referencedDeclaration": 3829, "src": "3375:13:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6377,7 +6377,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 3832, + "id": 3863, "isConstant": false, "isLValue": false, "isPure": true, @@ -6404,7 +6404,7 @@ "typeString": "uint256" } }, - "id": 3835, + "id": 3866, "nodeType": "ExpressionStatement", "src": "3349:43:20" }, @@ -6418,32 +6418,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3836, + "id": 3867, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 3811, "src": "3498:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3839, + "id": 3870, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_values", "nodeType": "MemberAccess", - "referencedDeclaration": 3731, + "referencedDeclaration": 3762, "src": "3498:11:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 3840, + "id": 3871, "isConstant": false, "isLValue": false, "isPure": false, @@ -6457,7 +6457,7 @@ "typeString": "function ()" } }, - "id": 3841, + "id": 3872, "isConstant": false, "isLValue": false, "isPure": false, @@ -6472,14 +6472,14 @@ "typeString": "tuple()" } }, - "id": 3842, + "id": 3873, "nodeType": "ExpressionStatement", "src": "3498:17:20" }, { "expression": { "argumentTypes": null, - "id": 3847, + "id": 3878, "isConstant": false, "isLValue": false, "isPure": false, @@ -6494,39 +6494,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3843, + "id": 3874, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 3811, "src": "3590:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3844, + "id": 3875, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3735, + "referencedDeclaration": 3766, "src": "3590:12:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3846, + "id": 3877, "indexExpression": { "argumentTypes": null, - "id": 3845, + "id": 3876, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3782, + "referencedDeclaration": 3813, "src": "3603:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6549,7 +6549,7 @@ "typeString": "tuple()" } }, - "id": 3848, + "id": 3879, "nodeType": "ExpressionStatement", "src": "3583:26:20" }, @@ -6557,7 +6557,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3849, + "id": 3880, "isConstant": false, "isLValue": false, "isPure": true, @@ -6572,8 +6572,8 @@ }, "value": "true" }, - "functionReturnParameters": 3786, - "id": 3850, + "functionReturnParameters": 3817, + "id": 3881, "nodeType": "Return", "src": "3624:11:20" } @@ -6583,12 +6583,12 @@ ] }, "documentation": { - "id": 3778, + "id": 3809, "nodeType": "StructuredDocumentation", "src": "2021:157:20", "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." }, - "id": 3857, + "id": 3888, "implemented": true, "kind": "function", "modifiers": [], @@ -6596,33 +6596,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3783, + "id": 3814, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3780, + "id": 3811, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3857, + "scope": 3888, "src": "2200:15:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" }, "typeName": { "contractScope": null, - "id": 3779, + "id": 3810, "name": "Set", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3736, + "referencedDeclaration": 3767, "src": "2200:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" } }, @@ -6631,12 +6631,12 @@ }, { "constant": false, - "id": 3782, + "id": 3813, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3857, + "scope": 3888, "src": "2217:13:20", "stateVariable": false, "storageLocation": "default", @@ -6645,7 +6645,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3781, + "id": 3812, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2217:7:20", @@ -6661,17 +6661,17 @@ "src": "2199:32:20" }, "returnParameters": { - "id": 3786, + "id": 3817, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3785, + "id": 3816, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3857, + "scope": 3888, "src": "2249:4:20", "stateVariable": false, "storageLocation": "default", @@ -6680,7 +6680,7 @@ "typeString": "bool" }, "typeName": { - "id": 3784, + "id": 3815, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2249:4:20", @@ -6695,7 +6695,7 @@ ], "src": "2248:6:20" }, - "scope": 4120, + "scope": 4151, "src": "2183:1512:20", "stateMutability": "nonpayable", "virtual": false, @@ -6703,7 +6703,7 @@ }, { "body": { - "id": 3874, + "id": 3905, "nodeType": "Block", "src": "3855:48:20", "statements": [ @@ -6714,7 +6714,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3872, + "id": 3903, "isConstant": false, "isLValue": false, "isPure": false, @@ -6725,39 +6725,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3867, + "id": 3898, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3860, + "referencedDeclaration": 3891, "src": "3872:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3868, + "id": 3899, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_indexes", "nodeType": "MemberAccess", - "referencedDeclaration": 3735, + "referencedDeclaration": 3766, "src": "3872:12:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3870, + "id": 3901, "indexExpression": { "argumentTypes": null, - "id": 3869, + "id": 3900, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3862, + "referencedDeclaration": 3893, "src": "3885:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6780,7 +6780,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3871, + "id": 3902, "isConstant": false, "isLValue": false, "isPure": true, @@ -6801,20 +6801,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 3866, - "id": 3873, + "functionReturnParameters": 3897, + "id": 3904, "nodeType": "Return", "src": "3865:31:20" } ] }, "documentation": { - "id": 3858, + "id": 3889, "nodeType": "StructuredDocumentation", "src": "3701:70:20", "text": " @dev Returns true if the value is in the set. O(1)." }, - "id": 3875, + "id": 3906, "implemented": true, "kind": "function", "modifiers": [], @@ -6822,33 +6822,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3863, + "id": 3894, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3860, + "id": 3891, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3875, + "scope": 3906, "src": "3795:15:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" }, "typeName": { "contractScope": null, - "id": 3859, + "id": 3890, "name": "Set", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3736, + "referencedDeclaration": 3767, "src": "3795:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" } }, @@ -6857,12 +6857,12 @@ }, { "constant": false, - "id": 3862, + "id": 3893, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3875, + "scope": 3906, "src": "3812:13:20", "stateVariable": false, "storageLocation": "default", @@ -6871,7 +6871,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3861, + "id": 3892, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3812:7:20", @@ -6887,17 +6887,17 @@ "src": "3794:32:20" }, "returnParameters": { - "id": 3866, + "id": 3897, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3865, + "id": 3896, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3875, + "scope": 3906, "src": "3849:4:20", "stateVariable": false, "storageLocation": "default", @@ -6906,7 +6906,7 @@ "typeString": "bool" }, "typeName": { - "id": 3864, + "id": 3895, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3849:4:20", @@ -6921,7 +6921,7 @@ ], "src": "3848:6:20" }, - "scope": 4120, + "scope": 4151, "src": "3776:127:20", "stateMutability": "view", "virtual": false, @@ -6929,7 +6929,7 @@ }, { "body": { - "id": 3887, + "id": 3918, "nodeType": "Block", "src": "4049:42:20", "statements": [ @@ -6940,32 +6940,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3883, + "id": 3914, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3878, + "referencedDeclaration": 3909, "src": "4066:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3884, + "id": 3915, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_values", "nodeType": "MemberAccess", - "referencedDeclaration": 3731, + "referencedDeclaration": 3762, "src": "4066:11:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 3885, + "id": 3916, "isConstant": false, "isLValue": false, "isPure": false, @@ -6979,20 +6979,20 @@ "typeString": "uint256" } }, - "functionReturnParameters": 3882, - "id": 3886, + "functionReturnParameters": 3913, + "id": 3917, "nodeType": "Return", "src": "4059:25:20" } ] }, "documentation": { - "id": 3876, + "id": 3907, "nodeType": "StructuredDocumentation", "src": "3909:70:20", "text": " @dev Returns the number of values on the set. O(1)." }, - "id": 3888, + "id": 3919, "implemented": true, "kind": "function", "modifiers": [], @@ -7000,33 +7000,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3879, + "id": 3910, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3878, + "id": 3909, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3888, + "scope": 3919, "src": "4001:15:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" }, "typeName": { "contractScope": null, - "id": 3877, + "id": 3908, "name": "Set", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3736, + "referencedDeclaration": 3767, "src": "4001:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" } }, @@ -7037,17 +7037,17 @@ "src": "4000:17:20" }, "returnParameters": { - "id": 3882, + "id": 3913, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3881, + "id": 3912, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3888, + "scope": 3919, "src": "4040:7:20", "stateVariable": false, "storageLocation": "default", @@ -7056,7 +7056,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3880, + "id": 3911, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4040:7:20", @@ -7071,7 +7071,7 @@ ], "src": "4039:9:20" }, - "scope": 4120, + "scope": 4151, "src": "3984:107:20", "stateMutability": "view", "virtual": false, @@ -7079,7 +7079,7 @@ }, { "body": { - "id": 3912, + "id": 3943, "nodeType": "Block", "src": "4499:125:20", "statements": [ @@ -7093,7 +7093,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3903, + "id": 3934, "isConstant": false, "isLValue": false, "isPure": false, @@ -7104,32 +7104,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3899, + "id": 3930, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3891, + "referencedDeclaration": 3922, "src": "4517:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3900, + "id": 3931, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_values", "nodeType": "MemberAccess", - "referencedDeclaration": 3731, + "referencedDeclaration": 3762, "src": "4517:11:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 3901, + "id": 3932, "isConstant": false, "isLValue": false, "isPure": false, @@ -7147,11 +7147,11 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 3902, + "id": 3933, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3893, + "referencedDeclaration": 3924, "src": "4538:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7167,7 +7167,7 @@ { "argumentTypes": null, "hexValue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", - "id": 3904, + "id": 3935, "isConstant": false, "isLValue": false, "isPure": true, @@ -7194,7 +7194,7 @@ "typeString": "literal_string \"EnumerableSet: index out of bounds\"" } ], - "id": 3898, + "id": 3929, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -7208,7 +7208,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 3905, + "id": 3936, "isConstant": false, "isLValue": false, "isPure": false, @@ -7223,7 +7223,7 @@ "typeString": "tuple()" } }, - "id": 3906, + "id": 3937, "nodeType": "ExpressionStatement", "src": "4509:73:20" }, @@ -7234,39 +7234,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3907, + "id": 3938, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3891, + "referencedDeclaration": 3922, "src": "4599:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set storage pointer" } }, - "id": 3908, + "id": 3939, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_values", "nodeType": "MemberAccess", - "referencedDeclaration": 3731, + "referencedDeclaration": 3762, "src": "4599:11:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 3910, + "id": 3941, "indexExpression": { "argumentTypes": null, - "id": 3909, + "id": 3940, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3893, + "referencedDeclaration": 3924, "src": "4611:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7284,20 +7284,20 @@ "typeString": "bytes32" } }, - "functionReturnParameters": 3897, - "id": 3911, + "functionReturnParameters": 3928, + "id": 3942, "nodeType": "Return", "src": "4592:25:20" } ] }, "documentation": { - "id": 3889, + "id": 3920, "nodeType": "StructuredDocumentation", "src": "4096:322:20", "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." }, - "id": 3913, + "id": 3944, "implemented": true, "kind": "function", "modifiers": [], @@ -7305,33 +7305,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3894, + "id": 3925, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3891, + "id": 3922, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3913, + "scope": 3944, "src": "4436:15:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" }, "typeName": { "contractScope": null, - "id": 3890, + "id": 3921, "name": "Set", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3736, + "referencedDeclaration": 3767, "src": "4436:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" } }, @@ -7340,12 +7340,12 @@ }, { "constant": false, - "id": 3893, + "id": 3924, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3913, + "scope": 3944, "src": "4453:13:20", "stateVariable": false, "storageLocation": "default", @@ -7354,7 +7354,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3892, + "id": 3923, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4453:7:20", @@ -7370,17 +7370,17 @@ "src": "4435:32:20" }, "returnParameters": { - "id": 3897, + "id": 3928, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3896, + "id": 3927, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3913, + "scope": 3944, "src": "4490:7:20", "stateVariable": false, "storageLocation": "default", @@ -7389,7 +7389,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3895, + "id": 3926, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4490:7:20", @@ -7404,7 +7404,7 @@ ], "src": "4489:9:20" }, - "scope": 4120, + "scope": 4151, "src": "4423:201:20", "stateMutability": "view", "virtual": false, @@ -7412,32 +7412,32 @@ }, { "canonicalName": "EnumerableSet.AddressSet", - "id": 3916, + "id": 3947, "members": [ { "constant": false, - "id": 3915, + "id": 3946, "mutability": "mutable", "name": "_inner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3916, + "scope": 3947, "src": "4677:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" }, "typeName": { "contractScope": null, - "id": 3914, + "id": 3945, "name": "Set", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3736, + "referencedDeclaration": 3767, "src": "4677:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" } }, @@ -7447,13 +7447,13 @@ ], "name": "AddressSet", "nodeType": "StructDefinition", - "scope": 4120, + "scope": 4151, "src": "4649:45:20", "visibility": "public" }, { "body": { - "id": 3938, + "id": 3969, "nodeType": "Block", "src": "4940:65:20", "statements": [ @@ -7465,28 +7465,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3927, + "id": 3958, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3919, + "referencedDeclaration": 3950, "src": "4962:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet storage pointer" } }, - "id": 3928, + "id": 3959, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3915, + "referencedDeclaration": 3946, "src": "4962:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } }, @@ -7498,11 +7498,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3933, + "id": 3964, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3921, + "referencedDeclaration": 3952, "src": "4990:5:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7517,7 +7517,7 @@ "typeString": "address" } ], - "id": 3932, + "id": 3963, "isConstant": false, "isLValue": false, "isPure": true, @@ -7529,7 +7529,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 3931, + "id": 3962, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4982:7:20", @@ -7539,7 +7539,7 @@ } } }, - "id": 3934, + "id": 3965, "isConstant": false, "isLValue": false, "isPure": false, @@ -7562,7 +7562,7 @@ "typeString": "uint256" } ], - "id": 3930, + "id": 3961, "isConstant": false, "isLValue": false, "isPure": true, @@ -7574,7 +7574,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 3929, + "id": 3960, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4974:7:20", @@ -7584,7 +7584,7 @@ } } }, - "id": 3935, + "id": 3966, "isConstant": false, "isLValue": false, "isPure": false, @@ -7603,7 +7603,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" }, { @@ -7611,18 +7611,18 @@ "typeString": "bytes32" } ], - "id": 3926, + "id": 3957, "name": "_add", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3777, + "referencedDeclaration": 3808, "src": "4957:4:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$3736_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$3767_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" } }, - "id": 3936, + "id": 3967, "isConstant": false, "isLValue": false, "isPure": false, @@ -7637,20 +7637,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 3925, - "id": 3937, + "functionReturnParameters": 3956, + "id": 3968, "nodeType": "Return", "src": "4950:48:20" } ] }, "documentation": { - "id": 3917, + "id": 3948, "nodeType": "StructuredDocumentation", "src": "4700:159:20", "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." }, - "id": 3939, + "id": 3970, "implemented": true, "kind": "function", "modifiers": [], @@ -7658,33 +7658,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3922, + "id": 3953, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3919, + "id": 3950, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3939, + "scope": 3970, "src": "4877:22:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" }, "typeName": { "contractScope": null, - "id": 3918, + "id": 3949, "name": "AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, + "referencedDeclaration": 3947, "src": "4877:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } }, @@ -7693,12 +7693,12 @@ }, { "constant": false, - "id": 3921, + "id": 3952, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3939, + "scope": 3970, "src": "4901:13:20", "stateVariable": false, "storageLocation": "default", @@ -7707,7 +7707,7 @@ "typeString": "address" }, "typeName": { - "id": 3920, + "id": 3951, "name": "address", "nodeType": "ElementaryTypeName", "src": "4901:7:20", @@ -7724,17 +7724,17 @@ "src": "4876:39:20" }, "returnParameters": { - "id": 3925, + "id": 3956, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3924, + "id": 3955, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3939, + "scope": 3970, "src": "4934:4:20", "stateVariable": false, "storageLocation": "default", @@ -7743,7 +7743,7 @@ "typeString": "bool" }, "typeName": { - "id": 3923, + "id": 3954, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4934:4:20", @@ -7758,7 +7758,7 @@ ], "src": "4933:6:20" }, - "scope": 4120, + "scope": 4151, "src": "4864:141:20", "stateMutability": "nonpayable", "virtual": false, @@ -7766,7 +7766,7 @@ }, { "body": { - "id": 3961, + "id": 3992, "nodeType": "Block", "src": "5252:68:20", "statements": [ @@ -7778,28 +7778,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3950, + "id": 3981, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3942, + "referencedDeclaration": 3973, "src": "5277:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet storage pointer" } }, - "id": 3951, + "id": 3982, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3915, + "referencedDeclaration": 3946, "src": "5277:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } }, @@ -7811,11 +7811,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3956, + "id": 3987, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3944, + "referencedDeclaration": 3975, "src": "5305:5:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7830,7 +7830,7 @@ "typeString": "address" } ], - "id": 3955, + "id": 3986, "isConstant": false, "isLValue": false, "isPure": true, @@ -7842,7 +7842,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 3954, + "id": 3985, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5297:7:20", @@ -7852,7 +7852,7 @@ } } }, - "id": 3957, + "id": 3988, "isConstant": false, "isLValue": false, "isPure": false, @@ -7875,7 +7875,7 @@ "typeString": "uint256" } ], - "id": 3953, + "id": 3984, "isConstant": false, "isLValue": false, "isPure": true, @@ -7887,7 +7887,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 3952, + "id": 3983, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5289:7:20", @@ -7897,7 +7897,7 @@ } } }, - "id": 3958, + "id": 3989, "isConstant": false, "isLValue": false, "isPure": false, @@ -7916,7 +7916,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" }, { @@ -7924,18 +7924,18 @@ "typeString": "bytes32" } ], - "id": 3949, + "id": 3980, "name": "_remove", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3857, + "referencedDeclaration": 3888, "src": "5269:7:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$3736_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$3767_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" } }, - "id": 3959, + "id": 3990, "isConstant": false, "isLValue": false, "isPure": false, @@ -7950,20 +7950,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 3948, - "id": 3960, + "functionReturnParameters": 3979, + "id": 3991, "nodeType": "Return", "src": "5262:51:20" } ] }, "documentation": { - "id": 3940, + "id": 3971, "nodeType": "StructuredDocumentation", "src": "5011:157:20", "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." }, - "id": 3962, + "id": 3993, "implemented": true, "kind": "function", "modifiers": [], @@ -7971,33 +7971,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3945, + "id": 3976, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3942, + "id": 3973, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3962, + "scope": 3993, "src": "5189:22:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" }, "typeName": { "contractScope": null, - "id": 3941, + "id": 3972, "name": "AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, + "referencedDeclaration": 3947, "src": "5189:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } }, @@ -8006,12 +8006,12 @@ }, { "constant": false, - "id": 3944, + "id": 3975, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3962, + "scope": 3993, "src": "5213:13:20", "stateVariable": false, "storageLocation": "default", @@ -8020,7 +8020,7 @@ "typeString": "address" }, "typeName": { - "id": 3943, + "id": 3974, "name": "address", "nodeType": "ElementaryTypeName", "src": "5213:7:20", @@ -8037,17 +8037,17 @@ "src": "5188:39:20" }, "returnParameters": { - "id": 3948, + "id": 3979, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3947, + "id": 3978, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3962, + "scope": 3993, "src": "5246:4:20", "stateVariable": false, "storageLocation": "default", @@ -8056,7 +8056,7 @@ "typeString": "bool" }, "typeName": { - "id": 3946, + "id": 3977, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5246:4:20", @@ -8071,7 +8071,7 @@ ], "src": "5245:6:20" }, - "scope": 4120, + "scope": 4151, "src": "5173:147:20", "stateMutability": "nonpayable", "virtual": false, @@ -8079,7 +8079,7 @@ }, { "body": { - "id": 3984, + "id": 4015, "nodeType": "Block", "src": "5487:70:20", "statements": [ @@ -8091,28 +8091,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3973, + "id": 4004, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3965, + "referencedDeclaration": 3996, "src": "5514:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet storage pointer" } }, - "id": 3974, + "id": 4005, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3915, + "referencedDeclaration": 3946, "src": "5514:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } }, @@ -8124,11 +8124,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3979, + "id": 4010, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3967, + "referencedDeclaration": 3998, "src": "5542:5:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8143,7 +8143,7 @@ "typeString": "address" } ], - "id": 3978, + "id": 4009, "isConstant": false, "isLValue": false, "isPure": true, @@ -8155,7 +8155,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 3977, + "id": 4008, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5534:7:20", @@ -8165,7 +8165,7 @@ } } }, - "id": 3980, + "id": 4011, "isConstant": false, "isLValue": false, "isPure": false, @@ -8188,7 +8188,7 @@ "typeString": "uint256" } ], - "id": 3976, + "id": 4007, "isConstant": false, "isLValue": false, "isPure": true, @@ -8200,7 +8200,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 3975, + "id": 4006, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5526:7:20", @@ -8210,7 +8210,7 @@ } } }, - "id": 3981, + "id": 4012, "isConstant": false, "isLValue": false, "isPure": false, @@ -8229,7 +8229,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" }, { @@ -8237,18 +8237,18 @@ "typeString": "bytes32" } ], - "id": 3972, + "id": 4003, "name": "_contains", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3875, + "referencedDeclaration": 3906, "src": "5504:9:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3736_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3767_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" } }, - "id": 3982, + "id": 4013, "isConstant": false, "isLValue": false, "isPure": false, @@ -8263,20 +8263,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 3971, - "id": 3983, + "functionReturnParameters": 4002, + "id": 4014, "nodeType": "Return", "src": "5497:53:20" } ] }, "documentation": { - "id": 3963, + "id": 3994, "nodeType": "StructuredDocumentation", "src": "5326:70:20", "text": " @dev Returns true if the value is in the set. O(1)." }, - "id": 3985, + "id": 4016, "implemented": true, "kind": "function", "modifiers": [], @@ -8284,33 +8284,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3968, + "id": 3999, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3965, + "id": 3996, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3985, + "scope": 4016, "src": "5419:22:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" }, "typeName": { "contractScope": null, - "id": 3964, + "id": 3995, "name": "AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, + "referencedDeclaration": 3947, "src": "5419:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } }, @@ -8319,12 +8319,12 @@ }, { "constant": false, - "id": 3967, + "id": 3998, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3985, + "scope": 4016, "src": "5443:13:20", "stateVariable": false, "storageLocation": "default", @@ -8333,7 +8333,7 @@ "typeString": "address" }, "typeName": { - "id": 3966, + "id": 3997, "name": "address", "nodeType": "ElementaryTypeName", "src": "5443:7:20", @@ -8350,17 +8350,17 @@ "src": "5418:39:20" }, "returnParameters": { - "id": 3971, + "id": 4002, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3970, + "id": 4001, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3985, + "scope": 4016, "src": "5481:4:20", "stateVariable": false, "storageLocation": "default", @@ -8369,7 +8369,7 @@ "typeString": "bool" }, "typeName": { - "id": 3969, + "id": 4000, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5481:4:20", @@ -8384,7 +8384,7 @@ ], "src": "5480:6:20" }, - "scope": 4120, + "scope": 4151, "src": "5401:156:20", "stateMutability": "view", "virtual": false, @@ -8392,7 +8392,7 @@ }, { "body": { - "id": 3998, + "id": 4029, "nodeType": "Block", "src": "5710:43:20", "statements": [ @@ -8404,28 +8404,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3994, + "id": 4025, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3988, + "referencedDeclaration": 4019, "src": "5735:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet storage pointer" } }, - "id": 3995, + "id": 4026, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3915, + "referencedDeclaration": 3946, "src": "5735:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } } @@ -8433,22 +8433,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } ], - "id": 3993, + "id": 4024, "name": "_length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3888, + "referencedDeclaration": 3919, "src": "5727:7:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3736_storage_ptr_$returns$_t_uint256_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3767_storage_ptr_$returns$_t_uint256_$", "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" } }, - "id": 3996, + "id": 4027, "isConstant": false, "isLValue": false, "isPure": false, @@ -8463,20 +8463,20 @@ "typeString": "uint256" } }, - "functionReturnParameters": 3992, - "id": 3997, + "functionReturnParameters": 4023, + "id": 4028, "nodeType": "Return", "src": "5720:26:20" } ] }, "documentation": { - "id": 3986, + "id": 4017, "nodeType": "StructuredDocumentation", "src": "5563:70:20", "text": " @dev Returns the number of values in the set. O(1)." }, - "id": 3999, + "id": 4030, "implemented": true, "kind": "function", "modifiers": [], @@ -8484,33 +8484,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3989, + "id": 4020, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3988, + "id": 4019, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3999, + "scope": 4030, "src": "5654:22:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" }, "typeName": { "contractScope": null, - "id": 3987, + "id": 4018, "name": "AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, + "referencedDeclaration": 3947, "src": "5654:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } }, @@ -8521,17 +8521,17 @@ "src": "5653:24:20" }, "returnParameters": { - "id": 3992, + "id": 4023, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3991, + "id": 4022, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3999, + "scope": 4030, "src": "5701:7:20", "stateVariable": false, "storageLocation": "default", @@ -8540,7 +8540,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3990, + "id": 4021, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5701:7:20", @@ -8555,7 +8555,7 @@ ], "src": "5700:9:20" }, - "scope": 4120, + "scope": 4151, "src": "5638:115:20", "stateMutability": "view", "virtual": false, @@ -8563,7 +8563,7 @@ }, { "body": { - "id": 4021, + "id": 4052, "nodeType": "Block", "src": "6168:64:20", "statements": [ @@ -8581,38 +8581,38 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4014, + "id": 4045, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4002, + "referencedDeclaration": 4033, "src": "6205:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet storage pointer" } }, - "id": 4015, + "id": 4046, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 3915, + "referencedDeclaration": 3946, "src": "6205:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } }, { "argumentTypes": null, - "id": 4016, + "id": 4047, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4004, + "referencedDeclaration": 4035, "src": "6217:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8623,7 +8623,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" }, { @@ -8631,18 +8631,18 @@ "typeString": "uint256" } ], - "id": 4013, + "id": 4044, "name": "_at", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3913, + "referencedDeclaration": 3944, "src": "6201:3:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3736_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3767_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" } }, - "id": 4017, + "id": 4048, "isConstant": false, "isLValue": false, "isPure": false, @@ -8665,7 +8665,7 @@ "typeString": "bytes32" } ], - "id": 4012, + "id": 4043, "isConstant": false, "isLValue": false, "isPure": true, @@ -8677,7 +8677,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 4011, + "id": 4042, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6193:7:20", @@ -8687,7 +8687,7 @@ } } }, - "id": 4018, + "id": 4049, "isConstant": false, "isLValue": false, "isPure": false, @@ -8710,7 +8710,7 @@ "typeString": "uint256" } ], - "id": 4010, + "id": 4041, "isConstant": false, "isLValue": false, "isPure": true, @@ -8722,7 +8722,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 4009, + "id": 4040, "name": "address", "nodeType": "ElementaryTypeName", "src": "6185:7:20", @@ -8732,7 +8732,7 @@ } } }, - "id": 4019, + "id": 4050, "isConstant": false, "isLValue": false, "isPure": false, @@ -8747,20 +8747,20 @@ "typeString": "address payable" } }, - "functionReturnParameters": 4008, - "id": 4020, + "functionReturnParameters": 4039, + "id": 4051, "nodeType": "Return", "src": "6178:47:20" } ] }, "documentation": { - "id": 4000, + "id": 4031, "nodeType": "StructuredDocumentation", "src": "5758:322:20", "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." }, - "id": 4022, + "id": 4053, "implemented": true, "kind": "function", "modifiers": [], @@ -8768,33 +8768,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4005, + "id": 4036, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4002, + "id": 4033, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4022, + "scope": 4053, "src": "6097:22:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" }, "typeName": { "contractScope": null, - "id": 4001, + "id": 4032, "name": "AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, + "referencedDeclaration": 3947, "src": "6097:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } }, @@ -8803,12 +8803,12 @@ }, { "constant": false, - "id": 4004, + "id": 4035, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4022, + "scope": 4053, "src": "6121:13:20", "stateVariable": false, "storageLocation": "default", @@ -8817,7 +8817,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4003, + "id": 4034, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6121:7:20", @@ -8833,17 +8833,17 @@ "src": "6096:39:20" }, "returnParameters": { - "id": 4008, + "id": 4039, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4007, + "id": 4038, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4022, + "scope": 4053, "src": "6159:7:20", "stateVariable": false, "storageLocation": "default", @@ -8852,7 +8852,7 @@ "typeString": "address" }, "typeName": { - "id": 4006, + "id": 4037, "name": "address", "nodeType": "ElementaryTypeName", "src": "6159:7:20", @@ -8868,7 +8868,7 @@ ], "src": "6158:9:20" }, - "scope": 4120, + "scope": 4151, "src": "6085:147:20", "stateMutability": "view", "virtual": false, @@ -8876,32 +8876,32 @@ }, { "canonicalName": "EnumerableSet.UintSet", - "id": 4025, + "id": 4056, "members": [ { "constant": false, - "id": 4024, + "id": 4055, "mutability": "mutable", "name": "_inner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4025, + "scope": 4056, "src": "6280:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" }, "typeName": { "contractScope": null, - "id": 4023, + "id": 4054, "name": "Set", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3736, + "referencedDeclaration": 3767, "src": "6280:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage_ptr", + "typeIdentifier": "t_struct$_Set_$3767_storage_ptr", "typeString": "struct EnumerableSet.Set" } }, @@ -8911,13 +8911,13 @@ ], "name": "UintSet", "nodeType": "StructDefinition", - "scope": 4120, + "scope": 4151, "src": "6255:42:20", "visibility": "public" }, { "body": { - "id": 4044, + "id": 4075, "nodeType": "Block", "src": "6540:56:20", "statements": [ @@ -8929,28 +8929,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4036, + "id": 4067, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4028, + "referencedDeclaration": 4059, "src": "6562:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet storage pointer" } }, - "id": 4037, + "id": 4068, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 4024, + "referencedDeclaration": 4055, "src": "6562:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } }, @@ -8959,11 +8959,11 @@ "arguments": [ { "argumentTypes": null, - "id": 4040, + "id": 4071, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4030, + "referencedDeclaration": 4061, "src": "6582:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8978,7 +8978,7 @@ "typeString": "uint256" } ], - "id": 4039, + "id": 4070, "isConstant": false, "isLValue": false, "isPure": true, @@ -8990,7 +8990,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 4038, + "id": 4069, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6574:7:20", @@ -9000,7 +9000,7 @@ } } }, - "id": 4041, + "id": 4072, "isConstant": false, "isLValue": false, "isPure": false, @@ -9019,7 +9019,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" }, { @@ -9027,18 +9027,18 @@ "typeString": "bytes32" } ], - "id": 4035, + "id": 4066, "name": "_add", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3777, + "referencedDeclaration": 3808, "src": "6557:4:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$3736_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$3767_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" } }, - "id": 4042, + "id": 4073, "isConstant": false, "isLValue": false, "isPure": false, @@ -9053,20 +9053,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 4034, - "id": 4043, + "functionReturnParameters": 4065, + "id": 4074, "nodeType": "Return", "src": "6550:39:20" } ] }, "documentation": { - "id": 4026, + "id": 4057, "nodeType": "StructuredDocumentation", "src": "6303:159:20", "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." }, - "id": 4045, + "id": 4076, "implemented": true, "kind": "function", "modifiers": [], @@ -9074,33 +9074,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4031, + "id": 4062, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4028, + "id": 4059, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4045, + "scope": 4076, "src": "6480:19:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" }, "typeName": { "contractScope": null, - "id": 4027, + "id": 4058, "name": "UintSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4025, + "referencedDeclaration": 4056, "src": "6480:7:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" } }, @@ -9109,12 +9109,12 @@ }, { "constant": false, - "id": 4030, + "id": 4061, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4045, + "scope": 4076, "src": "6501:13:20", "stateVariable": false, "storageLocation": "default", @@ -9123,7 +9123,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4029, + "id": 4060, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6501:7:20", @@ -9139,17 +9139,17 @@ "src": "6479:36:20" }, "returnParameters": { - "id": 4034, + "id": 4065, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4033, + "id": 4064, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4045, + "scope": 4076, "src": "6534:4:20", "stateVariable": false, "storageLocation": "default", @@ -9158,7 +9158,7 @@ "typeString": "bool" }, "typeName": { - "id": 4032, + "id": 4063, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6534:4:20", @@ -9173,7 +9173,7 @@ ], "src": "6533:6:20" }, - "scope": 4120, + "scope": 4151, "src": "6467:129:20", "stateMutability": "nonpayable", "virtual": false, @@ -9181,7 +9181,7 @@ }, { "body": { - "id": 4064, + "id": 4095, "nodeType": "Block", "src": "6840:59:20", "statements": [ @@ -9193,28 +9193,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4056, + "id": 4087, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4048, + "referencedDeclaration": 4079, "src": "6865:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet storage pointer" } }, - "id": 4057, + "id": 4088, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 4024, + "referencedDeclaration": 4055, "src": "6865:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } }, @@ -9223,11 +9223,11 @@ "arguments": [ { "argumentTypes": null, - "id": 4060, + "id": 4091, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4050, + "referencedDeclaration": 4081, "src": "6885:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9242,7 +9242,7 @@ "typeString": "uint256" } ], - "id": 4059, + "id": 4090, "isConstant": false, "isLValue": false, "isPure": true, @@ -9254,7 +9254,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 4058, + "id": 4089, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6877:7:20", @@ -9264,7 +9264,7 @@ } } }, - "id": 4061, + "id": 4092, "isConstant": false, "isLValue": false, "isPure": false, @@ -9283,7 +9283,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" }, { @@ -9291,18 +9291,18 @@ "typeString": "bytes32" } ], - "id": 4055, + "id": 4086, "name": "_remove", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3857, + "referencedDeclaration": 3888, "src": "6857:7:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$3736_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$3767_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" } }, - "id": 4062, + "id": 4093, "isConstant": false, "isLValue": false, "isPure": false, @@ -9317,20 +9317,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 4054, - "id": 4063, + "functionReturnParameters": 4085, + "id": 4094, "nodeType": "Return", "src": "6850:42:20" } ] }, "documentation": { - "id": 4046, + "id": 4077, "nodeType": "StructuredDocumentation", "src": "6602:157:20", "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." }, - "id": 4065, + "id": 4096, "implemented": true, "kind": "function", "modifiers": [], @@ -9338,33 +9338,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4051, + "id": 4082, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4048, + "id": 4079, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4065, + "scope": 4096, "src": "6780:19:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" }, "typeName": { "contractScope": null, - "id": 4047, + "id": 4078, "name": "UintSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4025, + "referencedDeclaration": 4056, "src": "6780:7:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" } }, @@ -9373,12 +9373,12 @@ }, { "constant": false, - "id": 4050, + "id": 4081, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4065, + "scope": 4096, "src": "6801:13:20", "stateVariable": false, "storageLocation": "default", @@ -9387,7 +9387,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4049, + "id": 4080, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6801:7:20", @@ -9403,17 +9403,17 @@ "src": "6779:36:20" }, "returnParameters": { - "id": 4054, + "id": 4085, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4053, + "id": 4084, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4065, + "scope": 4096, "src": "6834:4:20", "stateVariable": false, "storageLocation": "default", @@ -9422,7 +9422,7 @@ "typeString": "bool" }, "typeName": { - "id": 4052, + "id": 4083, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6834:4:20", @@ -9437,7 +9437,7 @@ ], "src": "6833:6:20" }, - "scope": 4120, + "scope": 4151, "src": "6764:135:20", "stateMutability": "nonpayable", "virtual": false, @@ -9445,7 +9445,7 @@ }, { "body": { - "id": 4084, + "id": 4115, "nodeType": "Block", "src": "7063:61:20", "statements": [ @@ -9457,28 +9457,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4076, + "id": 4107, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4068, + "referencedDeclaration": 4099, "src": "7090:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet storage pointer" } }, - "id": 4077, + "id": 4108, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 4024, + "referencedDeclaration": 4055, "src": "7090:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } }, @@ -9487,11 +9487,11 @@ "arguments": [ { "argumentTypes": null, - "id": 4080, + "id": 4111, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4070, + "referencedDeclaration": 4101, "src": "7110:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9506,7 +9506,7 @@ "typeString": "uint256" } ], - "id": 4079, + "id": 4110, "isConstant": false, "isLValue": false, "isPure": true, @@ -9518,7 +9518,7 @@ "typeString": "type(bytes32)" }, "typeName": { - "id": 4078, + "id": 4109, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7102:7:20", @@ -9528,7 +9528,7 @@ } } }, - "id": 4081, + "id": 4112, "isConstant": false, "isLValue": false, "isPure": false, @@ -9547,7 +9547,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" }, { @@ -9555,18 +9555,18 @@ "typeString": "bytes32" } ], - "id": 4075, + "id": 4106, "name": "_contains", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3875, + "referencedDeclaration": 3906, "src": "7080:9:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3736_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3767_storage_ptr_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" } }, - "id": 4082, + "id": 4113, "isConstant": false, "isLValue": false, "isPure": false, @@ -9581,20 +9581,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 4074, - "id": 4083, + "functionReturnParameters": 4105, + "id": 4114, "nodeType": "Return", "src": "7073:44:20" } ] }, "documentation": { - "id": 4066, + "id": 4097, "nodeType": "StructuredDocumentation", "src": "6905:70:20", "text": " @dev Returns true if the value is in the set. O(1)." }, - "id": 4085, + "id": 4116, "implemented": true, "kind": "function", "modifiers": [], @@ -9602,33 +9602,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4071, + "id": 4102, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4068, + "id": 4099, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4085, + "scope": 4116, "src": "6998:19:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" }, "typeName": { "contractScope": null, - "id": 4067, + "id": 4098, "name": "UintSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4025, + "referencedDeclaration": 4056, "src": "6998:7:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" } }, @@ -9637,12 +9637,12 @@ }, { "constant": false, - "id": 4070, + "id": 4101, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4085, + "scope": 4116, "src": "7019:13:20", "stateVariable": false, "storageLocation": "default", @@ -9651,7 +9651,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4069, + "id": 4100, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7019:7:20", @@ -9667,17 +9667,17 @@ "src": "6997:36:20" }, "returnParameters": { - "id": 4074, + "id": 4105, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4073, + "id": 4104, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4085, + "scope": 4116, "src": "7057:4:20", "stateVariable": false, "storageLocation": "default", @@ -9686,7 +9686,7 @@ "typeString": "bool" }, "typeName": { - "id": 4072, + "id": 4103, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7057:4:20", @@ -9701,7 +9701,7 @@ ], "src": "7056:6:20" }, - "scope": 4120, + "scope": 4151, "src": "6980:144:20", "stateMutability": "view", "virtual": false, @@ -9709,7 +9709,7 @@ }, { "body": { - "id": 4098, + "id": 4129, "nodeType": "Block", "src": "7274:43:20", "statements": [ @@ -9721,28 +9721,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4094, + "id": 4125, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4088, + "referencedDeclaration": 4119, "src": "7299:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet storage pointer" } }, - "id": 4095, + "id": 4126, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 4024, + "referencedDeclaration": 4055, "src": "7299:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } } @@ -9750,22 +9750,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } ], - "id": 4093, + "id": 4124, "name": "_length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3888, + "referencedDeclaration": 3919, "src": "7291:7:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3736_storage_ptr_$returns$_t_uint256_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3767_storage_ptr_$returns$_t_uint256_$", "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" } }, - "id": 4096, + "id": 4127, "isConstant": false, "isLValue": false, "isPure": false, @@ -9780,20 +9780,20 @@ "typeString": "uint256" } }, - "functionReturnParameters": 4092, - "id": 4097, + "functionReturnParameters": 4123, + "id": 4128, "nodeType": "Return", "src": "7284:26:20" } ] }, "documentation": { - "id": 4086, + "id": 4117, "nodeType": "StructuredDocumentation", "src": "7130:70:20", "text": " @dev Returns the number of values on the set. O(1)." }, - "id": 4099, + "id": 4130, "implemented": true, "kind": "function", "modifiers": [], @@ -9801,33 +9801,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4089, + "id": 4120, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4088, + "id": 4119, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4099, + "scope": 4130, "src": "7221:19:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" }, "typeName": { "contractScope": null, - "id": 4087, + "id": 4118, "name": "UintSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4025, + "referencedDeclaration": 4056, "src": "7221:7:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" } }, @@ -9838,17 +9838,17 @@ "src": "7220:21:20" }, "returnParameters": { - "id": 4092, + "id": 4123, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4091, + "id": 4122, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4099, + "scope": 4130, "src": "7265:7:20", "stateVariable": false, "storageLocation": "default", @@ -9857,7 +9857,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4090, + "id": 4121, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7265:7:20", @@ -9872,7 +9872,7 @@ ], "src": "7264:9:20" }, - "scope": 4120, + "scope": 4151, "src": "7205:112:20", "stateMutability": "view", "virtual": false, @@ -9880,7 +9880,7 @@ }, { "body": { - "id": 4118, + "id": 4149, "nodeType": "Block", "src": "7729:55:20", "statements": [ @@ -9895,38 +9895,38 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4112, + "id": 4143, "name": "set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4102, + "referencedDeclaration": 4133, "src": "7758:3:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet storage pointer" } }, - "id": 4113, + "id": 4144, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_inner", "nodeType": "MemberAccess", - "referencedDeclaration": 4024, + "referencedDeclaration": 4055, "src": "7758:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" } }, { "argumentTypes": null, - "id": 4114, + "id": 4145, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4104, + "referencedDeclaration": 4135, "src": "7770:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9937,7 +9937,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Set_$3736_storage", + "typeIdentifier": "t_struct$_Set_$3767_storage", "typeString": "struct EnumerableSet.Set storage ref" }, { @@ -9945,18 +9945,18 @@ "typeString": "uint256" } ], - "id": 4111, + "id": 4142, "name": "_at", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3913, + "referencedDeclaration": 3944, "src": "7754:3:20", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3736_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3767_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" } }, - "id": 4115, + "id": 4146, "isConstant": false, "isLValue": false, "isPure": false, @@ -9979,7 +9979,7 @@ "typeString": "bytes32" } ], - "id": 4110, + "id": 4141, "isConstant": false, "isLValue": false, "isPure": true, @@ -9991,7 +9991,7 @@ "typeString": "type(uint256)" }, "typeName": { - "id": 4109, + "id": 4140, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7746:7:20", @@ -10001,7 +10001,7 @@ } } }, - "id": 4116, + "id": 4147, "isConstant": false, "isLValue": false, "isPure": false, @@ -10016,20 +10016,20 @@ "typeString": "uint256" } }, - "functionReturnParameters": 4108, - "id": 4117, + "functionReturnParameters": 4139, + "id": 4148, "nodeType": "Return", "src": "7739:38:20" } ] }, "documentation": { - "id": 4100, + "id": 4131, "nodeType": "StructuredDocumentation", "src": "7322:322:20", "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." }, - "id": 4119, + "id": 4150, "implemented": true, "kind": "function", "modifiers": [], @@ -10037,33 +10037,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4105, + "id": 4136, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4102, + "id": 4133, "mutability": "mutable", "name": "set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4119, + "scope": 4150, "src": "7661:19:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" }, "typeName": { "contractScope": null, - "id": 4101, + "id": 4132, "name": "UintSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4025, + "referencedDeclaration": 4056, "src": "7661:7:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_UintSet_$4025_storage_ptr", + "typeIdentifier": "t_struct$_UintSet_$4056_storage_ptr", "typeString": "struct EnumerableSet.UintSet" } }, @@ -10072,12 +10072,12 @@ }, { "constant": false, - "id": 4104, + "id": 4135, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4119, + "scope": 4150, "src": "7682:13:20", "stateVariable": false, "storageLocation": "default", @@ -10086,7 +10086,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4103, + "id": 4134, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7682:7:20", @@ -10102,17 +10102,17 @@ "src": "7660:36:20" }, "returnParameters": { - "id": 4108, + "id": 4139, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4107, + "id": 4138, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4119, + "scope": 4150, "src": "7720:7:20", "stateVariable": false, "storageLocation": "default", @@ -10121,7 +10121,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4106, + "id": 4137, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7720:7:20", @@ -10136,14 +10136,14 @@ ], "src": "7719:9:20" }, - "scope": 4120, + "scope": 4151, "src": "7649:135:20", "stateMutability": "view", "virtual": false, "visibility": "internal" } ], - "scope": 4121, + "scope": 4152, "src": "724:7062:20" } ], @@ -10151,16 +10151,20 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:06.017Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.742Z", "devdoc": { "details": "Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example { // Add the library methods using EnumerableSet for EnumerableSet.AddressSet; // Declare a set state variable EnumerableSet.AddressSet private mySet; } ``` As of v3.0.0, only sets of type `address` (`AddressSet`) and `uint256` (`UintSet`) are supported.", - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/FlipperLike.json b/abi/FlipperLike.json index 82add43..d6778a1 100644 --- a/abi/FlipperLike.json +++ b/abi/FlipperLike.json @@ -63,13 +63,13 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"bids\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"bid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lot\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"tic\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"end\",\"type\":\"uint48\"},{\"internalType\":\"address\",\"name\":\"usr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"gal\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tab\",\"type\":\"uint256\"}],\"internalType\":\"struct FlipperLike.Bid\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/sencha/maker-badges/contracts/MakerBadges.sol\":\"FlipperLike\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/sencha/maker-badges/contracts/MakerBadges.sol\":{\"keccak256\":\"0x570c9a022411ed8db97e8acc575d01f784e70e13649a1fd2235174933f2886f8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d921c4b81919585f53c69fbfdf7e6745aa4b48ef7d602bd89f50c3acc850c27e\",\"dweb:/ipfs/QmQDWFVCvE9sc4SNVuTUg5gyh5FdsBhzhxv2hfGJWHaiyN\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x92f7900d382761c7faefeaced81c6b4f1aae909ed0551803bfe8f27101956360\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://407c0864143968542e5cf5aa7556916d2cf292b201e3dadb65662e9a3aa24187\",\"dweb:/ipfs/QmSnXzYAUaGLGr7uofRbgQraTJvatbjQLBPhyYiMd18oUJ\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c\",\"dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"bids\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"bid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lot\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"tic\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"end\",\"type\":\"uint48\"},{\"internalType\":\"address\",\"name\":\"usr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"gal\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tab\",\"type\":\"uint256\"}],\"internalType\":\"struct FlipperLike.Bid\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/sencha/maker-badges/contracts/MakerBadges.sol\":\"FlipperLike\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/sencha/maker-badges/contracts/MakerBadges.sol\":{\"keccak256\":\"0x6c6ddbe292dbaed58b0aed79aea5edc21e6e3503f6988e50ffcb339050f3b010\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://66c4800e34af2d3ac348a783f351aa3f83f9d96389d774719efad2759bb8ccba\",\"dweb:/ipfs/QmZcMk7ehVeMvdifFd3bWfUeL4qXD5oMm1w1LwfttxmASr\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x92f7900d382761c7faefeaced81c6b4f1aae909ed0551803bfe8f27101956360\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://407c0864143968542e5cf5aa7556916d2cf292b201e3dadb65662e9a3aa24187\",\"dweb:/ipfs/QmSnXzYAUaGLGr7uofRbgQraTJvatbjQLBPhyYiMd18oUJ\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c\",\"dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, "sourceMap": "", "deployedSourceMap": "", - "source": "/// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.6.10;\npragma experimental ABIEncoderV2;\n\n\n/// @title Non-transferable Badges for Maker Ecosystem Activity, CDIP 18\n/// @author Nazzareno Massari @naszam\n/// @notice MakerBadges to check for activities on maker ecosystem and keep track of redeemers\n/// @dev See https://github.com/makerdao/community/issues/537\n/// @dev All function calls are currently implemented without side effects through TDD approach\n/// @dev OpenZeppelin library is used for secure contract development\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport \"@openzeppelin/contracts/utils/Pausable.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"@openzeppelin/contracts/utils/EnumerableSet.sol\";\n\ninterface PotLike {\n\n function pie(address guy) external view returns (uint256);\n function chi() external view returns (uint256);\n function rho() external view returns (uint256);\n function drip() external view returns (uint256);\n\n}\n\ninterface DSChiefLike {\n function votes(address) external view returns (bytes32);\n}\n\ninterface FlipperLike {\n struct Bid {\n uint256 bid;\n uint256 lot;\n address guy;\n uint48 tic;\n uint48 end;\n address usr;\n address gal;\n uint256 tab;\n}\n function bids(uint256) external view returns (Bid memory);\n}\n\ncontract MakerBadges is Ownable, AccessControl, Pausable {\n\n /// @dev Libraries\n using SafeMath for uint256;\n using EnumerableSet for EnumerableSet.AddressSet;\n\n bytes32 public constant PAUSER_ROLE = keccak256(\"PAUSER_ROLE\");\n\n bytes32[] public roots;\n\n mapping (uint256 => EnumerableSet.AddressSet) private redeemers;\n\n /// @dev Events\n event PotChecked(address guy);\n event DSChiefChecked(address guy);\n event FlipperChecked(address guy);\n\n /// @dev Data\n PotLike internal immutable pot;\n DSChiefLike internal immutable chief;\n FlipperLike internal immutable flipper;\n\n /// @dev Math\n uint256 constant RAY = 10 ** 27;\n\n function rmul(uint256 x, uint256 y) internal view whenNotPaused returns (uint256 z) {\n /// @dev always rounds down\n z = x.mul(y) / RAY;\n }\n\n constructor() public {\n _setupRole(DEFAULT_ADMIN_ROLE, owner());\n\n _setupRole(PAUSER_ROLE, owner());\n\n /// @dev MCD_POT Kovan Address https://kovan.etherscan.io/address/0xea190dbdc7adf265260ec4da6e9675fd4f5a78bb#code\n\tpot = PotLike(0xEA190DBDC7adF265260ec4dA6e9675Fd4f5A78bb);\n\n /// @dev MCD_ADM Kovan Address https://kovan.etherscan.io/address/0xbBFFC76e94B34F72D96D054b31f6424249c1337d#code\n chief = DSChiefLike(0xbBFFC76e94B34F72D96D054b31f6424249c1337d);\n\n /// @dev MCD_FLIP_ETH_A Kovan Address https://kovan.etherscan.io/address/0xB40139Ea36D35d0C9F6a2e62601B616F1FfbBD1b#code\n flipper = FlipperLike(0xB40139Ea36D35d0C9F6a2e62601B616F1FfbBD1b);\n\n }\n\n /// @notice Fallback function\n /// @dev Added not payable to revert transactions not matching any other function which send value\n fallback() external {\n revert();\n }\n\n /// @notice Set Merkle Tree Root Hashes array\n /// @dev Called by owner to update roots for different address batches by templateId\n /// @param rootHashes Root hashes of the Merkle Trees by templateId\n /// @return True if successfully updated\n function setRootHashes(bytes32[] calldata rootHashes) external onlyOwner whenNotPaused returns (bool) {\n roots = rootHashes;\n return true;\n }\n\n /// @notice Return the accrued interest of guy on Pot\n /// @dev Based on Chai dai() function\n /// @param guy Address to check\n /// @return wad Accrued interest of guy\n function _dai(address guy) private view whenNotPaused returns (uint256 wad) {\n uint256 slice = pot.pie(guy);\n uint256 chi = (now > pot.rho()) ? pot.drip() : pot.chi();\n wad = rmul(slice, chi);\n }\n\n /// @notice Pot Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @return True if the caller successfully checked for activity on Pot\n function potChallenge(uint256 templateId) external whenNotPaused returns (bool) {\n require(_dai(msg.sender) >= 1 ether, \"Caller has not accrued 1 or more Dai interest on Pot\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit PotChecked(msg.sender);\n return true;\n }\n\n /// @notice DSChief Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @return True if the caller successfully checked for activity on DSChief\n function chiefChallenge(uint256 templateId) external whenNotPaused returns (bool) {\n require(chief.votes(msg.sender) != 0x00, \"Caller is not voting in a Governance Poll\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit DSChiefChecked(msg.sender);\n return true;\n }\n\n /// @notice Flipper Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @dev guy, high bidder\n /// @return True if the caller successfully checked for activity on Flipper\n function flipperChallenge(uint256 templateId, uint256 bidId) external whenNotPaused returns (bool) {\n require(flipper.bids(bidId).guy == msg.sender, \"Caller is not the high bidder in the current Bid in Collateral Auctions\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit FlipperChecked(msg.sender);\n return true;\n }\n\n /// @notice Check if guy is a redeemer\n /// @dev Verify if the address of guy exists\n /// @param guy Address to verify\n /// @return True if guy is a redeemer\n function verify(uint256 templateId, address guy) external view whenNotPaused returns (bool) {\n return redeemers[templateId].contains(guy);\n }\n\n /// @notice Pause all the functions\n /// @dev the caller must have the 'PAUSER_ROLE'\n function pause() external {\n require(hasRole(PAUSER_ROLE, msg.sender), \"MakerBadges: must have pauser role to pause\");\n _pause();\n }\n\n /// @notice Unpause all the functions\n /// @dev the caller must have the 'PAUSER_ROLE'\n function unpause() external {\n require(hasRole(PAUSER_ROLE, msg.sender), \"MakerBadges: must have pauser role to unpause\");\n _unpause();\n }\n\n}\n", + "source": "/// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.6.11;\npragma experimental ABIEncoderV2;\n\n\n/// @title Non-transferable Badges for Maker Ecosystem Activity, CDIP 18\n/// @author Nazzareno Massari @naszam\n/// @notice MakerBadges to check for activities on maker ecosystem and keep track of redeemers\n/// @dev See https://github.com/makerdao/community/issues/537\n/// @dev All function calls are currently implemented without side effects through TDD approach\n/// @dev OpenZeppelin library is used for secure contract development\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport \"@openzeppelin/contracts/utils/Pausable.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"@openzeppelin/contracts/utils/EnumerableSet.sol\";\n\ninterface PotLike {\n\n function pie(address guy) external view returns (uint256);\n function chi() external view returns (uint256);\n function rho() external view returns (uint256);\n function drip() external view returns (uint256);\n\n}\n\ninterface DSChiefLike {\n function votes(address) external view returns (bytes32);\n}\n\ninterface FlipperLike {\n struct Bid {\n uint256 bid;\n uint256 lot;\n address guy;\n uint48 tic;\n uint48 end;\n address usr;\n address gal;\n uint256 tab;\n}\n function bids(uint256) external view returns (Bid memory);\n}\n\ncontract MakerBadges is Ownable, AccessControl, Pausable {\n\n /// @dev Libraries\n using SafeMath for uint256;\n using EnumerableSet for EnumerableSet.AddressSet;\n\n bytes32 public constant ADMIN_ROLE = keccak256(\"ADMIN_ROLE\");\n bytes32 public constant PAUSER_ROLE = keccak256(\"PAUSER_ROLE\");\n\n bytes32[] public roots;\n\n mapping (uint256 => EnumerableSet.AddressSet) private redeemers;\n\n /// @dev Events\n event PotChecked(address guy);\n event DSChiefChecked(address guy);\n event FlipperChecked(address guy);\n\n /// @dev Data\n PotLike internal immutable pot;\n DSChiefLike internal immutable chief;\n FlipperLike internal immutable flipper;\n\n /// @dev Math\n uint256 constant RAY = 10 ** 27;\n\n function rmul(uint256 x, uint256 y) internal view whenNotPaused returns (uint256 z) {\n /// @dev always rounds down\n z = x.mul(y) / RAY;\n }\n\n constructor(address pot_, address chief_, address flipper_) public {\n _setupRole(DEFAULT_ADMIN_ROLE, owner());\n\n _setupRole(ADMIN_ROLE, owner());\n _setupRole(PAUSER_ROLE, owner());\n\n /// @dev MCD_POT Address\n pot = PotLike(pot_);\n\n /// @dev MCD_ADM Address\n chief = DSChiefLike(chief_);\n\n /// @dev MCD_FLIP_ETH_A Address\n flipper = FlipperLike(flipper_);\n\n }\n\n /// @notice Fallback function\n /// @dev Added not payable to revert transactions not matching any other function which send value\n fallback() external {\n revert();\n }\n\n /// @dev Modifiers\n modifier onlyAdmin() {\n require(hasRole(ADMIN_ROLE, msg.sender), \"Caller is not an admin\");\n _;\n }\n\n\n /// @notice Set Merkle Tree Root Hashes array\n /// @dev Called by owner to update roots for different address batches by templateId\n /// @param rootHashes Root hashes of the Merkle Trees by templateId\n /// @return True if successfully updated\n function setRootHashes(bytes32[] calldata rootHashes) external onlyAdmin whenNotPaused returns (bool) {\n roots = rootHashes;\n return true;\n }\n\n /// @notice Return the accrued interest of guy on Pot\n /// @dev Based on Chai dai() function\n /// @param guy Address to check\n /// @return wad Accrued interest of guy\n function _dai(address guy) private view whenNotPaused returns (uint256 wad) {\n uint256 slice = pot.pie(guy);\n uint256 chi = (now > pot.rho()) ? pot.drip() : pot.chi();\n wad = rmul(slice, chi);\n }\n\n /// @notice Pot Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @return True if the caller successfully checked for activity on Pot\n function potChallenge(uint256 templateId) external whenNotPaused returns (bool) {\n require(_dai(msg.sender) >= 1 ether, \"Caller has not accrued 1 or more Dai interest on Pot\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit PotChecked(msg.sender);\n return true;\n }\n\n /// @notice DSChief Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @return True if the caller successfully checked for activity on DSChief\n function chiefChallenge(uint256 templateId) external whenNotPaused returns (bool) {\n require(chief.votes(msg.sender) != 0x00, \"Caller is not voting in an Executive Spell\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit DSChiefChecked(msg.sender);\n return true;\n }\n\n /// @notice Flipper Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @dev guy, high bidder\n /// @return True if the caller successfully checked for activity on Flipper\n function flipperChallenge(uint256 templateId, uint256 bidId) external whenNotPaused returns (bool) {\n require(flipper.bids(bidId).guy == msg.sender, \"Caller is not the high bidder in the current Bid in Collateral Auctions\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit FlipperChecked(msg.sender);\n return true;\n }\n\n /// @notice Check if guy is a redeemer\n /// @dev Verify if the address of guy exists\n /// @param guy Address to verify\n /// @return True if guy is a redeemer\n function verify(uint256 templateId, address guy) external view whenNotPaused returns (bool) {\n return redeemers[templateId].contains(guy);\n }\n\n /// @notice Pause all the functions\n /// @dev the caller must have the 'PAUSER_ROLE'\n function pause() external {\n require(hasRole(PAUSER_ROLE, msg.sender), \"MakerBadges: must have pauser role to pause\");\n _pause();\n }\n\n /// @notice Unpause all the functions\n /// @dev the caller must have the 'PAUSER_ROLE'\n function unpause() external {\n require(hasRole(PAUSER_ROLE, msg.sender), \"MakerBadges: must have pauser role to unpause\");\n _unpause();\n }\n\n}\n", "sourcePath": "/home/sencha/maker-badges/contracts/MakerBadges.sol", "ast": { "absolutePath": "/home/sencha/maker-badges/contracts/MakerBadges.sol", @@ -81,13 +81,13 @@ 697 ], "MakerBadges": [ - 1075 + 1106 ], "PotLike": [ 664 ] }, - "id": 1076, + "id": 1107, "license": "GPL-3.0", "nodeType": "SourceUnit", "nodes": [ @@ -96,7 +96,7 @@ "literals": [ "solidity", "0.6", - ".10" + ".11" ], "nodeType": "PragmaDirective", "src": "37:23:2" @@ -115,8 +115,8 @@ "file": "@openzeppelin/contracts/access/Ownable.sol", "id": 637, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1528, + "scope": 1107, + "sourceUnit": 1559, "src": "532:52:2", "symbolAliases": [], "unitAlias": "" @@ -126,8 +126,8 @@ "file": "@openzeppelin/contracts/access/AccessControl.sol", "id": 638, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1419, + "scope": 1107, + "sourceUnit": 1450, "src": "585:58:2", "symbolAliases": [], "unitAlias": "" @@ -137,8 +137,8 @@ "file": "@openzeppelin/contracts/utils/Pausable.sol", "id": 639, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 4211, + "scope": 1107, + "sourceUnit": 4242, "src": "644:52:2", "symbolAliases": [], "unitAlias": "" @@ -148,8 +148,8 @@ "file": "@openzeppelin/contracts/math/SafeMath.sol", "id": 640, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1864, + "scope": 1107, + "sourceUnit": 1895, "src": "697:51:2", "symbolAliases": [], "unitAlias": "" @@ -159,8 +159,8 @@ "file": "@openzeppelin/contracts/utils/EnumerableSet.sol", "id": 641, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 4121, + "scope": 1107, + "sourceUnit": 4152, "src": "749:57:2", "symbolAliases": [], "unitAlias": "" @@ -442,7 +442,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "808:243:2" }, { @@ -548,7 +548,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "1053:84:2" }, { @@ -893,7 +893,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "1139:240:2" }, { @@ -906,10 +906,10 @@ "id": 698, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1527, + "referencedDeclaration": 1558, "src": "1405:7:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$1527", + "typeIdentifier": "t_contract$_Ownable_$1558", "typeString": "contract Ownable" } }, @@ -924,10 +924,10 @@ "id": 700, "name": "AccessControl", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1418, + "referencedDeclaration": 1449, "src": "1414:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_AccessControl_$1418", + "typeIdentifier": "t_contract$_AccessControl_$1449", "typeString": "contract AccessControl" } }, @@ -942,10 +942,10 @@ "id": 702, "name": "Pausable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4210, + "referencedDeclaration": 4241, "src": "1429:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pausable_$4210", + "typeIdentifier": "t_contract$_Pausable_$4241", "typeString": "contract Pausable" } }, @@ -955,21 +955,21 @@ } ], "contractDependencies": [ - 1135, - 1418, - 1527, - 4210 + 1166, + 1449, + 1558, + 4241 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1075, + "id": 1106, "linearizedBaseContracts": [ - 1075, - 4210, - 1418, - 1527, - 1135 + 1106, + 4241, + 1449, + 1558, + 1166 ], "name": "MakerBadges", "nodeType": "ContractDefinition", @@ -981,10 +981,10 @@ "id": 704, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1863, + "referencedDeclaration": 1894, "src": "1470:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1863", + "typeIdentifier": "t_contract$_SafeMath_$1894", "typeString": "library SafeMath" } }, @@ -1008,10 +1008,10 @@ "id": 707, "name": "EnumerableSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4120, + "referencedDeclaration": 4151, "src": "1500:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_EnumerableSet_$4120", + "typeIdentifier": "t_contract$_EnumerableSet_$4151", "typeString": "library EnumerableSet" } }, @@ -1022,24 +1022,24 @@ "id": 708, "name": "EnumerableSet.AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, + "referencedDeclaration": 3947, "src": "1518:24:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } } }, { "constant": true, - "functionSelector": "e63ab1e9", + "functionSelector": "75b238fc", "id": 714, "mutability": "constant", - "name": "PAUSER_ROLE", + "name": "ADMIN_ROLE", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1547:62:2", + "scope": 1106, + "src": "1547:60:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1061,7 +1061,7 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "5041555345525f524f4c45", + "hexValue": "41444d494e5f524f4c45", "id": 712, "isConstant": false, "isLValue": false, @@ -1069,7 +1069,90 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1595:13:2", + "src": "1594:12:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", + "typeString": "literal_string \"ADMIN_ROLE\"" + }, + "value": "ADMIN_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", + "typeString": "literal_string \"ADMIN_ROLE\"" + } + ], + "id": 711, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1584:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1584:23:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "e63ab1e9", + "id": 719, + "mutability": "constant", + "name": "PAUSER_ROLE", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1106, + "src": "1611:62:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 715, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1611:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "5041555345525f524f4c45", + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1659:13:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a", @@ -1085,18 +1168,18 @@ "typeString": "literal_string \"PAUSER_ROLE\"" } ], - "id": 711, + "id": 716, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "1585:9:2", + "src": "1649:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 713, + "id": 718, "isConstant": false, "isLValue": false, "isPure": true, @@ -1104,7 +1187,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1585:24:2", + "src": "1649:24:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1116,13 +1199,13 @@ { "constant": false, "functionSelector": "c2b40ae4", - "id": 717, + "id": 722, "mutability": "mutable", "name": "roots", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1614:22:2", + "scope": 1106, + "src": "1678:22:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1131,19 +1214,19 @@ }, "typeName": { "baseType": { - "id": 715, + "id": 720, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1614:7:2", + "src": "1678:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 716, + "id": 721, "length": null, "nodeType": "ArrayTypeName", - "src": "1614:9:2", + "src": "1678:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -1154,46 +1237,46 @@ }, { "constant": false, - "id": 721, + "id": 726, "mutability": "mutable", "name": "redeemers", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1641:63:2", + "scope": 1106, + "src": "1705:63:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet)" }, "typeName": { - "id": 720, + "id": 725, "keyType": { - "id": 718, + "id": 723, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1650:7:2", + "src": "1714:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "1641:45:2", + "src": "1705:45:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet)" }, "valueType": { "contractScope": null, - "id": 719, + "id": 724, "name": "EnumerableSet.AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, - "src": "1661:24:2", + "referencedDeclaration": 3947, + "src": "1725:24:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } } @@ -1204,28 +1287,28 @@ { "anonymous": false, "documentation": { - "id": 722, + "id": 727, "nodeType": "StructuredDocumentation", - "src": "1709:15:2", + "src": "1773:15:2", "text": "@dev Events" }, - "id": 726, + "id": 731, "name": "PotChecked", "nodeType": "EventDefinition", "parameters": { - "id": 725, + "id": 730, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 724, + "id": 729, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 726, - "src": "1744:11:2", + "scope": 731, + "src": "1808:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1233,10 +1316,10 @@ "typeString": "address" }, "typeName": { - "id": 723, + "id": 728, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1744:7:2", + "src": "1808:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1247,30 +1330,30 @@ "visibility": "internal" } ], - "src": "1743:13:2" + "src": "1807:13:2" }, - "src": "1727:30:2" + "src": "1791:30:2" }, { "anonymous": false, "documentation": null, - "id": 730, + "id": 735, "name": "DSChiefChecked", "nodeType": "EventDefinition", "parameters": { - "id": 729, + "id": 734, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 728, + "id": 733, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 730, - "src": "1781:11:2", + "scope": 735, + "src": "1845:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1278,10 +1361,10 @@ "typeString": "address" }, "typeName": { - "id": 727, + "id": 732, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1781:7:2", + "src": "1845:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1292,30 +1375,30 @@ "visibility": "internal" } ], - "src": "1780:13:2" + "src": "1844:13:2" }, - "src": "1760:34:2" + "src": "1824:34:2" }, { "anonymous": false, "documentation": null, - "id": 734, + "id": 739, "name": "FlipperChecked", "nodeType": "EventDefinition", "parameters": { - "id": 733, + "id": 738, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 732, + "id": 737, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 734, - "src": "1818:11:2", + "scope": 739, + "src": "1882:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1323,10 +1406,10 @@ "typeString": "address" }, "typeName": { - "id": 731, + "id": 736, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1818:7:2", + "src": "1882:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1337,25 +1420,25 @@ "visibility": "internal" } ], - "src": "1817:13:2" + "src": "1881:13:2" }, - "src": "1797:34:2" + "src": "1861:34:2" }, { "constant": false, "documentation": { - "id": 735, + "id": 740, "nodeType": "StructuredDocumentation", - "src": "1835:13:2", + "src": "1899:13:2", "text": "@dev Data" }, - "id": 737, + "id": 742, "mutability": "immutable", "name": "pot", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1851:31:2", + "scope": 1106, + "src": "1915:31:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1364,11 +1447,11 @@ }, "typeName": { "contractScope": null, - "id": 736, + "id": 741, "name": "PotLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 664, - "src": "1851:7:2", + "src": "1915:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" @@ -1379,13 +1462,13 @@ }, { "constant": false, - "id": 739, + "id": 744, "mutability": "immutable", "name": "chief", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1886:36:2", + "scope": 1106, + "src": "1950:36:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1394,11 +1477,11 @@ }, "typeName": { "contractScope": null, - "id": 738, + "id": 743, "name": "DSChiefLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 672, - "src": "1886:11:2", + "src": "1950:11:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" @@ -1409,13 +1492,13 @@ }, { "constant": false, - "id": 741, + "id": 746, "mutability": "immutable", "name": "flipper", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1926:38:2", + "scope": 1106, + "src": "1990:38:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1424,11 +1507,11 @@ }, "typeName": { "contractScope": null, - "id": 740, + "id": 745, "name": "FlipperLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 697, - "src": "1926:11:2", + "src": "1990:11:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" @@ -1440,18 +1523,18 @@ { "constant": true, "documentation": { - "id": 742, + "id": 747, "nodeType": "StructuredDocumentation", - "src": "1969:13:2", + "src": "2033:13:2", "text": "@dev Math" }, - "id": 747, + "id": 752, "mutability": "constant", "name": "RAY", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1985:31:2", + "scope": 1106, + "src": "2049:31:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1459,10 +1542,10 @@ "typeString": "uint256" }, "typeName": { - "id": 743, + "id": 748, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1985:7:2", + "src": "2049:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1474,7 +1557,7 @@ "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" }, - "id": 746, + "id": 751, "isConstant": false, "isLValue": false, "isPure": true, @@ -1482,14 +1565,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 744, + "id": 749, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2008:2:2", + "src": "2072:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -1502,14 +1585,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3237", - "id": 745, + "id": 750, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2014:2:2", + "src": "2078:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_27_by_1", @@ -1517,7 +1600,7 @@ }, "value": "27" }, - "src": "2008:8:2", + "src": "2072:8:2", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" @@ -1527,26 +1610,26 @@ }, { "body": { - "id": 767, + "id": 772, "nodeType": "Block", - "src": "2105:73:2", + "src": "2169:73:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 765, + "id": 770, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 758, + "id": 763, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 756, - "src": "2155:1:2", + "referencedDeclaration": 761, + "src": "2219:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1560,7 +1643,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 764, + "id": 769, "isConstant": false, "isLValue": false, "isPure": false, @@ -1570,12 +1653,12 @@ "arguments": [ { "argumentTypes": null, - "id": 761, + "id": 766, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 751, - "src": "2165:1:2", + "referencedDeclaration": 756, + "src": "2229:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1591,32 +1674,32 @@ ], "expression": { "argumentTypes": null, - "id": 759, + "id": 764, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "2159:1:2", + "referencedDeclaration": 754, + "src": "2223:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 760, + "id": 765, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 1776, - "src": "2159:5:2", + "referencedDeclaration": 1807, + "src": "2223:5: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": 762, + "id": 767, "isConstant": false, "isLValue": false, "isPure": false, @@ -1624,7 +1707,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2159:8:2", + "src": "2223:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1635,76 +1718,76 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 763, + "id": 768, "name": "RAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 747, - "src": "2170:3:2", + "referencedDeclaration": 752, + "src": "2234:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2159:14:2", + "src": "2223:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2155:18:2", + "src": "2219:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 766, + "id": 771, "nodeType": "ExpressionStatement", - "src": "2155:18:2" + "src": "2219:18:2" } ] }, "documentation": null, - "id": 768, + "id": 773, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 754, + "id": 759, "modifierName": { "argumentTypes": null, - "id": 753, + "id": 758, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "2071:13:2", + "referencedDeclaration": 4198, + "src": "2135:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2071:13:2" + "src": "2135:13:2" } ], "name": "rmul", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 752, + "id": 757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 749, + "id": 754, "mutability": "mutable", "name": "x", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2035:9:2", + "scope": 773, + "src": "2099:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1712,10 +1795,10 @@ "typeString": "uint256" }, "typeName": { - "id": 748, + "id": 753, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2035:7:2", + "src": "2099:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1726,13 +1809,13 @@ }, { "constant": false, - "id": 751, + "id": 756, "mutability": "mutable", "name": "y", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2046:9:2", + "scope": 773, + "src": "2110:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1740,10 +1823,10 @@ "typeString": "uint256" }, "typeName": { - "id": 750, + "id": 755, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2046:7:2", + "src": "2110:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1753,21 +1836,21 @@ "visibility": "internal" } ], - "src": "2034:22:2" + "src": "2098:22:2" }, "returnParameters": { - "id": 757, + "id": 762, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 756, + "id": 761, "mutability": "mutable", "name": "z", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2094:9:2", + "scope": 773, + "src": "2158:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1775,10 +1858,10 @@ "typeString": "uint256" }, "typeName": { - "id": 755, + "id": 760, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2094:7:2", + "src": "2158:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1788,19 +1871,19 @@ "visibility": "internal" } ], - "src": "2093:11:2" + "src": "2157:11:2" }, - "scope": 1075, - "src": "2021:157:2", + "scope": 1106, + "src": "2085:157:2", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 801, + "id": 818, "nodeType": "Block", - "src": "2203:682:2", + "src": "2313:355:2", "statements": [ { "expression": { @@ -1808,12 +1891,12 @@ "arguments": [ { "argumentTypes": null, - "id": 772, + "id": 783, "name": "DEFAULT_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1161, - "src": "2224:18:2", + "referencedDeclaration": 1192, + "src": "2334:18:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1824,18 +1907,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 773, + "id": 784, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "2244:5:2", + "referencedDeclaration": 1494, + "src": "2354:5:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 774, + "id": 785, "isConstant": false, "isLValue": false, "isPure": false, @@ -1843,7 +1926,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2244:7:2", + "src": "2354:7:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -1862,18 +1945,18 @@ "typeString": "address" } ], - "id": 771, + "id": 782, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "2213:10:2", + "referencedDeclaration": 1375, + "src": "2323:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 775, + "id": 786, "isConstant": false, "isLValue": false, "isPure": false, @@ -1881,16 +1964,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2213:39:2", + "src": "2323:39:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 776, + "id": 787, "nodeType": "ExpressionStatement", - "src": "2213:39:2" + "src": "2323:39:2" }, { "expression": { @@ -1898,12 +1981,102 @@ "arguments": [ { "argumentTypes": null, - "id": 778, - "name": "PAUSER_ROLE", + "id": 789, + "name": "ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 714, - "src": "2274:11:2", + "src": "2384:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 790, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "2396:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2396:7:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 788, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1375, + "src": "2373:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2373:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 793, + "nodeType": "ExpressionStatement", + "src": "2373:31:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 795, + "name": "PAUSER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 719, + "src": "2425:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1914,18 +2087,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 779, + "id": 796, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "2287:5:2", + "referencedDeclaration": 1494, + "src": "2438:5:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 780, + "id": 797, "isConstant": false, "isLValue": false, "isPure": false, @@ -1933,7 +2106,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2287:7:2", + "src": "2438:7:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -1952,18 +2125,18 @@ "typeString": "address" } ], - "id": 777, + "id": 794, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "2263:10:2", + "referencedDeclaration": 1375, + "src": "2414:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 781, + "id": 798, "isConstant": false, "isLValue": false, "isPure": false, @@ -1971,33 +2144,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2263:32:2", + "src": "2414:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 782, + "id": 799, "nodeType": "ExpressionStatement", - "src": "2263:32:2" + "src": "2414:32:2" }, { "expression": { "argumentTypes": null, - "id": 787, + "id": 804, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 783, + "id": 800, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "2421:3:2", + "referencedDeclaration": 742, + "src": "2490:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" @@ -2010,82 +2183,77 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307845413139304442444337616446323635323630656334644136653936373546643466354137386262", - "id": 785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2435:42:2", - "subdenomination": null, + "id": 802, + "name": "pot_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 775, + "src": "2504:4:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xEA190DBDC7adF265260ec4dA6e9675Fd4f5A78bb" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 784, + "id": 801, "name": "PotLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 664, - "src": "2427:7:2", + "src": "2496:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_PotLike_$664_$", "typeString": "type(contract PotLike)" } }, - "id": 786, + "id": 803, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2427:51:2", + "src": "2496:13:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "src": "2421:57:2", + "src": "2490:19:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 788, + "id": 805, "nodeType": "ExpressionStatement", - "src": "2421:57:2" + "src": "2490:19:2" }, { "expression": { "argumentTypes": null, - "id": 793, + "id": 810, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 789, + "id": 806, "name": "chief", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "2611:5:2", + "referencedDeclaration": 744, + "src": "2553:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" @@ -2098,82 +2266,77 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307862424646433736653934423334463732443936443035346233316636343234323439633133333764", - "id": 791, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2631:42:2", - "subdenomination": null, + "id": 808, + "name": "chief_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 777, + "src": "2573:6:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xbBFFC76e94B34F72D96D054b31f6424249c1337d" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 790, + "id": 807, "name": "DSChiefLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 672, - "src": "2619:11:2", + "src": "2561:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DSChiefLike_$672_$", "typeString": "type(contract DSChiefLike)" } }, - "id": 792, + "id": 809, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2619:55:2", + "src": "2561:19:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "src": "2611:63:2", + "src": "2553:27:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "id": 794, + "id": 811, "nodeType": "ExpressionStatement", - "src": "2611:63:2" + "src": "2553:27:2" }, { "expression": { "argumentTypes": null, - "id": 799, + "id": 816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 795, + "id": 812, "name": "flipper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "2814:7:2", + "referencedDeclaration": 746, + "src": "2631:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" @@ -2186,70 +2349,65 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307842343031333945613336443335643043394636613265363236303142363136463146666242443162", - "id": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2836:42:2", - "subdenomination": null, + "id": 814, + "name": "flipper_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "2653:8:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xB40139Ea36D35d0C9F6a2e62601B616F1FfbBD1b" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 796, + "id": 813, "name": "FlipperLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 697, - "src": "2824:11:2", + "src": "2641:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FlipperLike_$697_$", "typeString": "type(contract FlipperLike)" } }, - "id": 798, + "id": 815, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2824:55:2", + "src": "2641:21:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" } }, - "src": "2814:65:2", + "src": "2631:31:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" } }, - "id": 800, + "id": 817, "nodeType": "ExpressionStatement", - "src": "2814:65:2" + "src": "2631:31:2" } ] }, "documentation": null, - "id": 802, + "id": 819, "implemented": true, "kind": "constructor", "modifiers": [], @@ -2257,50 +2415,138 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 769, - "nodeType": "ParameterList", - "parameters": [], - "src": "2193:2:2" - }, - "returnParameters": { - "id": 770, + "id": 780, "nodeType": "ParameterList", - "parameters": [], - "src": "2203:0:2" - }, - "scope": 1075, - "src": "2182:703:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 809, - "nodeType": "Block", - "src": "3042:19:2", - "statements": [ + "parameters": [ { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 806, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -19, + "constant": false, + "id": 775, + "mutability": "mutable", + "name": "pot_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2258:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 774, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2258:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 777, + "mutability": "mutable", + "name": "chief_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2272:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 776, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2272:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 779, + "mutability": "mutable", + "name": "flipper_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2288:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2288:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2257:48:2" + }, + "returnParameters": { + "id": 781, + "nodeType": "ParameterList", + "parameters": [], + "src": "2313:0:2" + }, + "scope": 1106, + "src": "2246:422:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 826, + "nodeType": "Block", + "src": "2825:19:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 823, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, -19 ], "referencedDeclaration": -19, - "src": "3048:6:2", + "src": "2831:6:2", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 807, + "id": 824, "isConstant": false, "isLValue": false, "isPure": false, @@ -2308,26 +2554,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3048:8:2", + "src": "2831:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 808, + "id": 825, "nodeType": "ExpressionStatement", - "src": "3048:8:2" + "src": "2831:8:2" } ] }, "documentation": { - "id": 803, + "id": 820, "nodeType": "StructuredDocumentation", - "src": "2889:130:2", + "src": "2672:130:2", "text": "@notice Fallback function\n @dev Added not payable to revert transactions not matching any other function which send value" }, - "id": 810, + "id": 827, "implemented": true, "kind": "fallback", "modifiers": [], @@ -2335,45 +2581,228 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 804, + "id": 821, "nodeType": "ParameterList", "parameters": [], - "src": "3030:2:2" + "src": "2813:2:2" }, "returnParameters": { - "id": 805, + "id": 822, "nodeType": "ParameterList", "parameters": [], - "src": "3042:0:2" + "src": "2825:0:2" }, - "scope": 1075, - "src": "3022:39:2", + "scope": 1106, + "src": "2805:39:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { + "id": 840, + "nodeType": "Block", + "src": "2890:90:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 832, + "name": "ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 714, + "src": "2914:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 833, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2926:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2926:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 831, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1238, + "src": "2906:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2906:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43616c6c6572206973206e6f7420616e2061646d696e", + "id": 836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2939:24:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c42e6f213cb252dbb58053bcbc469c8ef3e91890f0261efae8e5d5a1aecda226", + "typeString": "literal_string \"Caller is not an admin\"" + }, + "value": "Caller is not an admin" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c42e6f213cb252dbb58053bcbc469c8ef3e91890f0261efae8e5d5a1aecda226", + "typeString": "literal_string \"Caller is not an admin\"" + } + ], + "id": 830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2898:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2898:66:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 838, + "nodeType": "ExpressionStatement", + "src": "2898:66:2" + }, + { + "id": 839, + "nodeType": "PlaceholderStatement", + "src": "2972:1:2" + } + ] + }, + "documentation": { + "id": 828, + "nodeType": "StructuredDocumentation", + "src": "2848:18:2", + "text": "@dev Modifiers" + }, + "id": 841, + "name": "onlyAdmin", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { "id": 829, + "nodeType": "ParameterList", + "parameters": [], + "src": "2887:2:2" + }, + "src": "2869:111:2", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 860, "nodeType": "Block", - "src": "3415:46:2", + "src": "3335:46:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 825, + "id": 856, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 823, + "id": 854, "name": "roots", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "3421:5:2", + "referencedDeclaration": 722, + "src": "3341:5:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" @@ -2383,39 +2812,39 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 824, + "id": 855, "name": "rootHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 814, - "src": "3429:10:2", + "referencedDeclaration": 845, + "src": "3349:10:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "src": "3421:18:2", + "src": "3341:18:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 826, + "id": 857, "nodeType": "ExpressionStatement", - "src": "3421:18:2" + "src": "3341:18:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 827, + "id": 858, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3452:4:2", + "src": "3372:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2423,79 +2852,79 @@ }, "value": "true" }, - "functionReturnParameters": 822, - "id": 828, + "functionReturnParameters": 853, + "id": 859, "nodeType": "Return", - "src": "3445:11:2" + "src": "3365:11:2" } ] }, "documentation": { - "id": 811, + "id": 842, "nodeType": "StructuredDocumentation", - "src": "3065:245:2", + "src": "2985:245:2", "text": "@notice Set Merkle Tree Root Hashes array\n @dev Called by owner to update roots for different address batches by templateId\n @param rootHashes Root hashes of the Merkle Trees by templateId\n @return True if successfully updated" }, "functionSelector": "aca57703", - "id": 830, + "id": 861, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 817, + "id": 848, "modifierName": { "argumentTypes": null, - "id": 816, - "name": "onlyOwner", + "id": 847, + "name": "onlyAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "3376:9:2", + "referencedDeclaration": 841, + "src": "3296:9:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3376:9:2" + "src": "3296:9:2" }, { "arguments": null, - "id": 819, + "id": 850, "modifierName": { "argumentTypes": null, - "id": 818, + "id": 849, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "3386:13:2", + "referencedDeclaration": 4198, + "src": "3306:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3386:13:2" + "src": "3306:13:2" } ], "name": "setRootHashes", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 815, + "id": 846, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 814, + "id": 845, "mutability": "mutable", "name": "rootHashes", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 830, - "src": "3336:29:2", + "scope": 861, + "src": "3256:29:2", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -2504,19 +2933,19 @@ }, "typeName": { "baseType": { - "id": 812, + "id": 843, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3336:7:2", + "src": "3256:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 813, + "id": 844, "length": null, "nodeType": "ArrayTypeName", - "src": "3336:9:2", + "src": "3256:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -2526,21 +2955,21 @@ "visibility": "internal" } ], - "src": "3335:31:2" + "src": "3255:31:2" }, "returnParameters": { - "id": 822, + "id": 853, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 821, + "id": 852, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 830, - "src": "3409:4:2", + "scope": 861, + "src": "3329:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2548,10 +2977,10 @@ "typeString": "bool" }, "typeName": { - "id": 820, + "id": 851, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3409:4:2", + "src": "3329:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2561,34 +2990,34 @@ "visibility": "internal" } ], - "src": "3408:6:2" + "src": "3328:6:2" }, - "scope": 1075, - "src": "3313:148:2", + "scope": 1106, + "src": "3233:148:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 870, + "id": 901, "nodeType": "Block", - "src": "3713:129:2", + "src": "3633:129:2", "statements": [ { "assignments": [ - 841 + 872 ], "declarations": [ { "constant": false, - "id": 841, + "id": 872, "mutability": "mutable", "name": "slice", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 870, - "src": "3719:13:2", + "scope": 901, + "src": "3639:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2596,10 +3025,10 @@ "typeString": "uint256" }, "typeName": { - "id": 840, + "id": 871, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3719:7:2", + "src": "3639:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2609,18 +3038,18 @@ "visibility": "internal" } ], - "id": 846, + "id": 877, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 844, + "id": 875, "name": "guy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 833, - "src": "3743:3:2", + "referencedDeclaration": 864, + "src": "3663:3:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2636,18 +3065,18 @@ ], "expression": { "argumentTypes": null, - "id": 842, + "id": 873, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3735:3:2", + "referencedDeclaration": 742, + "src": "3655:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 843, + "id": 874, "isConstant": false, "isLValue": false, "isPure": false, @@ -2655,13 +3084,13 @@ "memberName": "pie", "nodeType": "MemberAccess", "referencedDeclaration": 648, - "src": "3735:7:2", + "src": "3655:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 845, + "id": 876, "isConstant": false, "isLValue": false, "isPure": false, @@ -2669,7 +3098,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3735:12:2", + "src": "3655:12:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2677,22 +3106,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3719:28:2" + "src": "3639:28:2" }, { "assignments": [ - 848 + 879 ], "declarations": [ { "constant": false, - "id": 848, + "id": 879, "mutability": "mutable", "name": "chi", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 870, - "src": "3753:11:2", + "scope": 901, + "src": "3673:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2700,10 +3129,10 @@ "typeString": "uint256" }, "typeName": { - "id": 847, + "id": 878, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3753:7:2", + "src": "3673:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2713,7 +3142,7 @@ "visibility": "internal" } ], - "id": 862, + "id": 893, "initialValue": { "argumentTypes": null, "condition": { @@ -2725,19 +3154,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 853, + "id": 884, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 849, + "id": 880, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -17, - "src": "3768:3:2", + "src": "3688:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2752,18 +3181,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 850, + "id": 881, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3774:3:2", + "referencedDeclaration": 742, + "src": "3694:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 851, + "id": 882, "isConstant": false, "isLValue": false, "isPure": false, @@ -2771,13 +3200,13 @@ "memberName": "rho", "nodeType": "MemberAccess", "referencedDeclaration": 658, - "src": "3774:7:2", + "src": "3694:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 852, + "id": 883, "isConstant": false, "isLValue": false, "isPure": false, @@ -2785,28 +3214,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3774:9:2", + "src": "3694:9:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3768:15:2", + "src": "3688:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 854, + "id": 885, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3767:17:2", + "src": "3687:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2819,18 +3248,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 858, + "id": 889, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3800:3:2", + "referencedDeclaration": 742, + "src": "3720:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 859, + "id": 890, "isConstant": false, "isLValue": false, "isPure": false, @@ -2838,13 +3267,13 @@ "memberName": "chi", "nodeType": "MemberAccess", "referencedDeclaration": 653, - "src": "3800:7:2", + "src": "3720:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 860, + "id": 891, "isConstant": false, "isLValue": false, "isPure": false, @@ -2852,20 +3281,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3800:9:2", + "src": "3720:9:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 861, + "id": 892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "3767:42:2", + "src": "3687:42:2", "trueExpression": { "argumentTypes": null, "arguments": [], @@ -2873,18 +3302,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 855, + "id": 886, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3787:3:2", + "referencedDeclaration": 742, + "src": "3707:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 856, + "id": 887, "isConstant": false, "isLValue": false, "isPure": false, @@ -2892,13 +3321,13 @@ "memberName": "drip", "nodeType": "MemberAccess", "referencedDeclaration": 663, - "src": "3787:8:2", + "src": "3707:8:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 857, + "id": 888, "isConstant": false, "isLValue": false, "isPure": false, @@ -2906,7 +3335,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3787:10:2", + "src": "3707:10:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2919,24 +3348,24 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3753:56:2" + "src": "3673:56:2" }, { "expression": { "argumentTypes": null, - "id": 868, + "id": 899, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 863, + "id": 894, "name": "wad", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 838, - "src": "3815:3:2", + "referencedDeclaration": 869, + "src": "3735:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2949,12 +3378,12 @@ "arguments": [ { "argumentTypes": null, - "id": 865, + "id": 896, "name": "slice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 841, - "src": "3826:5:2", + "referencedDeclaration": 872, + "src": "3746:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2962,12 +3391,12 @@ }, { "argumentTypes": null, - "id": 866, + "id": 897, "name": "chi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 848, - "src": "3833:3:2", + "referencedDeclaration": 879, + "src": "3753:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2985,18 +3414,18 @@ "typeString": "uint256" } ], - "id": 864, + "id": 895, "name": "rmul", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "3821:4:2", + "referencedDeclaration": 773, + "src": "3741:4:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) view returns (uint256)" } }, - "id": 867, + "id": 898, "isConstant": false, "isLValue": false, "isPure": false, @@ -3004,71 +3433,71 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3821:16:2", + "src": "3741:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3815:22:2", + "src": "3735:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 869, + "id": 900, "nodeType": "ExpressionStatement", - "src": "3815:22:2" + "src": "3735:22:2" } ] }, "documentation": { - "id": 831, + "id": 862, "nodeType": "StructuredDocumentation", - "src": "3465:169:2", + "src": "3385:169:2", "text": "@notice Return the accrued interest of guy on Pot\n @dev Based on Chai dai() function\n @param guy Address to check\n @return wad Accrued interest of guy" }, - "id": 871, + "id": 902, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 836, + "id": 867, "modifierName": { "argumentTypes": null, - "id": 835, + "id": 866, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "3677:13:2", + "referencedDeclaration": 4198, + "src": "3597:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3677:13:2" + "src": "3597:13:2" } ], "name": "_dai", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 834, + "id": 865, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 833, + "id": 864, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 871, - "src": "3651:11:2", + "scope": 902, + "src": "3571:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3076,10 +3505,10 @@ "typeString": "address" }, "typeName": { - "id": 832, + "id": 863, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3651:7:2", + "src": "3571:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3090,21 +3519,21 @@ "visibility": "internal" } ], - "src": "3650:13:2" + "src": "3570:13:2" }, "returnParameters": { - "id": 839, + "id": 870, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 838, + "id": 869, "mutability": "mutable", "name": "wad", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 871, - "src": "3700:11:2", + "scope": 902, + "src": "3620:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3112,10 +3541,10 @@ "typeString": "uint256" }, "typeName": { - "id": 837, + "id": 868, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3700:7:2", + "src": "3620:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3125,19 +3554,19 @@ "visibility": "internal" } ], - "src": "3699:13:2" + "src": "3619:13:2" }, - "scope": 1075, - "src": "3637:205:2", + "scope": 1106, + "src": "3557:205:2", "stateMutability": "view", "virtual": false, "visibility": "private" }, { "body": { - "id": 918, + "id": 949, "nodeType": "Block", - "src": "4094:266:2", + "src": "4014:266:2", "statements": [ { "expression": { @@ -3149,7 +3578,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 887, + "id": 918, "isConstant": false, "isLValue": false, "isPure": false, @@ -3161,18 +3590,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 883, + "id": 914, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4113:3:2", + "src": "4033:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 884, + "id": 915, "isConstant": false, "isLValue": false, "isPure": false, @@ -3180,7 +3609,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4113:10:2", + "src": "4033:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3194,18 +3623,18 @@ "typeString": "address payable" } ], - "id": 882, + "id": 913, "name": "_dai", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 871, - "src": "4108:4:2", + "referencedDeclaration": 902, + "src": "4028:4:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 885, + "id": 916, "isConstant": false, "isLValue": false, "isPure": false, @@ -3213,7 +3642,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4108:16:2", + "src": "4028:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3225,14 +3654,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 886, + "id": 917, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4128:7:2", + "src": "4048:7:2", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", @@ -3240,7 +3669,7 @@ }, "value": "1" }, - "src": "4108:27:2", + "src": "4028:27:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3249,14 +3678,14 @@ { "argumentTypes": null, "hexValue": "43616c6c657220686173206e6f7420616363727565642031206f72206d6f72652044616920696e746572657374206f6e20506f74", - "id": 888, + "id": 919, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4137:54:2", + "src": "4057:54:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_94e2bcffd09237077ab7bf5d72c9dbecf83833ba747ce44f2fb8b96ffffa64a1", @@ -3276,7 +3705,7 @@ "typeString": "literal_string \"Caller has not accrued 1 or more Dai interest on Pot\"" } ], - "id": 881, + "id": 912, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3284,13 +3713,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4100:7:2", + "src": "4020:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 889, + "id": 920, "isConstant": false, "isLValue": false, "isPure": false, @@ -3298,21 +3727,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4100:92:2", + "src": "4020:92:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 890, + "id": 921, "nodeType": "ExpressionStatement", - "src": "4100:92:2" + "src": "4020:92:2" }, { "condition": { "argumentTypes": null, - "id": 898, + "id": 929, "isConstant": false, "isLValue": false, "isPure": false, @@ -3320,7 +3749,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4202:43:2", + "src": "4122:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -3328,18 +3757,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 895, + "id": 926, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4234:3:2", + "src": "4154:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 896, + "id": 927, "isConstant": false, "isLValue": false, "isPure": false, @@ -3347,7 +3776,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4234:10:2", + "src": "4154:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3365,26 +3794,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 891, + "id": 922, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4203:9:2", + "referencedDeclaration": 726, + "src": "4123:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 893, + "id": 924, "indexExpression": { "argumentTypes": null, - "id": 892, + "id": 923, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "4213:10:2", + "referencedDeclaration": 905, + "src": "4133:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3395,27 +3824,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4203:21:2", + "src": "4123:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 894, + "id": 925, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "4203:30:2", + "referencedDeclaration": 4016, + "src": "4123:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 897, + "id": 928, "isConstant": false, "isLValue": false, "isPure": false, @@ -3423,7 +3852,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4203:42:2", + "src": "4123:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3436,13 +3865,13 @@ } }, "falseBody": null, - "id": 910, + "id": 941, "nodeType": "IfStatement", - "src": "4198:108:2", + "src": "4118:108:2", "trueBody": { - "id": 909, + "id": 940, "nodeType": "Block", - "src": "4247:59:2", + "src": "4167:59:2", "statements": [ { "expression": { @@ -3455,18 +3884,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 904, + "id": 935, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4287:3:2", + "src": "4207:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 905, + "id": 936, "isConstant": false, "isLValue": false, "isPure": false, @@ -3474,7 +3903,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4287:10:2", + "src": "4207:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3492,26 +3921,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 900, + "id": 931, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4261:9:2", + "referencedDeclaration": 726, + "src": "4181:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 902, + "id": 933, "indexExpression": { "argumentTypes": null, - "id": 901, + "id": 932, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "4271:10:2", + "referencedDeclaration": 905, + "src": "4191:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3522,27 +3951,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4261:21:2", + "src": "4181:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 903, + "id": 934, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "4261:25:2", + "referencedDeclaration": 3970, + "src": "4181:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 906, + "id": 937, "isConstant": false, "isLValue": false, "isPure": false, @@ -3550,7 +3979,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4261:37:2", + "src": "4181:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3565,7 +3994,7 @@ "typeString": "bool" } ], - "id": 899, + "id": 930, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3573,13 +4002,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4253:7:2", + "src": "4173:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 907, + "id": 938, "isConstant": false, "isLValue": false, "isPure": false, @@ -3587,16 +4016,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4253:46:2", + "src": "4173:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 908, + "id": 939, "nodeType": "ExpressionStatement", - "src": "4253:46:2" + "src": "4173:46:2" } ] } @@ -3609,18 +4038,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 912, + "id": 943, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4327:3:2", + "src": "4247:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 913, + "id": 944, "isConstant": false, "isLValue": false, "isPure": false, @@ -3628,7 +4057,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4327:10:2", + "src": "4247:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3642,18 +4071,18 @@ "typeString": "address payable" } ], - "id": 911, + "id": 942, "name": "PotChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 726, - "src": "4316:10:2", + "referencedDeclaration": 731, + "src": "4236:10:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 914, + "id": 945, "isConstant": false, "isLValue": false, "isPure": false, @@ -3661,29 +4090,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4316:22:2", + "src": "4236:22:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 915, + "id": 946, "nodeType": "EmitStatement", - "src": "4311:27:2" + "src": "4231:27:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 916, + "id": 947, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4351:4:2", + "src": "4271:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3691,60 +4120,60 @@ }, "value": "true" }, - "functionReturnParameters": 880, - "id": 917, + "functionReturnParameters": 911, + "id": 948, "nodeType": "Return", - "src": "4344:11:2" + "src": "4264:11:2" } ] }, "documentation": { - "id": 872, + "id": 903, "nodeType": "StructuredDocumentation", - "src": "3846:165:2", + "src": "3766:165:2", "text": "@notice Pot Challenge\n @dev Keeps track of the address of the caller if successful\n @return True if the caller successfully checked for activity on Pot" }, "functionSelector": "baf2868b", - "id": 919, + "id": 950, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 877, + "id": 908, "modifierName": { "argumentTypes": null, - "id": 876, + "id": 907, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "4065:13:2", + "referencedDeclaration": 4198, + "src": "3985:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4065:13:2" + "src": "3985:13:2" } ], "name": "potChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 875, + "id": 906, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 874, + "id": 905, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 919, - "src": "4036:18:2", + "scope": 950, + "src": "3956:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3752,10 +4181,10 @@ "typeString": "uint256" }, "typeName": { - "id": 873, + "id": 904, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4036:7:2", + "src": "3956:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3765,21 +4194,21 @@ "visibility": "internal" } ], - "src": "4035:20:2" + "src": "3955:20:2" }, "returnParameters": { - "id": 880, + "id": 911, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 879, + "id": 910, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 919, - "src": "4088:4:2", + "scope": 950, + "src": "4008:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3787,10 +4216,10 @@ "typeString": "bool" }, "typeName": { - "id": 878, + "id": 909, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4088:4:2", + "src": "4008:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3800,19 +4229,19 @@ "visibility": "internal" } ], - "src": "4087:6:2" + "src": "4007:6:2" }, - "scope": 1075, - "src": "4014:346:2", + "scope": 1106, + "src": "3934:346:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 967, + "id": 998, "nodeType": "Block", - "src": "4622:263:2", + "src": "4542:264:2", "statements": [ { "expression": { @@ -3824,7 +4253,7 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 936, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, @@ -3836,18 +4265,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 932, + "id": 963, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4648:3:2", + "src": "4568:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 933, + "id": 964, "isConstant": false, "isLValue": false, "isPure": false, @@ -3855,7 +4284,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4648:10:2", + "src": "4568:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3871,18 +4300,18 @@ ], "expression": { "argumentTypes": null, - "id": 930, + "id": 961, "name": "chief", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "4636:5:2", + "referencedDeclaration": 744, + "src": "4556:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "id": 931, + "id": 962, "isConstant": false, "isLValue": false, "isPure": false, @@ -3890,13 +4319,13 @@ "memberName": "votes", "nodeType": "MemberAccess", "referencedDeclaration": 671, - "src": "4636:11:2", + "src": "4556:11:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$", "typeString": "function (address) view external returns (bytes32)" } }, - "id": 934, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, @@ -3904,7 +4333,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4636:23:2", + "src": "4556:23:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3916,14 +4345,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783030", - "id": 935, + "id": 966, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4663:4:2", + "src": "4583:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3931,7 +4360,7 @@ }, "value": "0x00" }, - "src": "4636:31:2", + "src": "4556:31:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3939,21 +4368,21 @@ }, { "argumentTypes": null, - "hexValue": "43616c6c6572206973206e6f7420766f74696e6720696e206120476f7665726e616e636520506f6c6c", - "id": 937, + "hexValue": "43616c6c6572206973206e6f7420766f74696e6720696e20616e20457865637574697665205370656c6c", + "id": 968, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4669:43:2", + "src": "4589:44:2", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_67b208a9b43a5545a1a8888c99a64b4cd7f58aa52580dee6f4ec112b3e80c46b", - "typeString": "literal_string \"Caller is not voting in a Governance Poll\"" + "typeIdentifier": "t_stringliteral_65880bfcd366c16deddf50d8f8606d011e26303e9f1a09e543bd3e08c12c2544", + "typeString": "literal_string \"Caller is not voting in an Executive Spell\"" }, - "value": "Caller is not voting in a Governance Poll" + "value": "Caller is not voting in an Executive Spell" } ], "expression": { @@ -3963,11 +4392,11 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_67b208a9b43a5545a1a8888c99a64b4cd7f58aa52580dee6f4ec112b3e80c46b", - "typeString": "literal_string \"Caller is not voting in a Governance Poll\"" + "typeIdentifier": "t_stringliteral_65880bfcd366c16deddf50d8f8606d011e26303e9f1a09e543bd3e08c12c2544", + "typeString": "literal_string \"Caller is not voting in an Executive Spell\"" } ], - "id": 929, + "id": 960, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3975,13 +4404,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4628:7:2", + "src": "4548:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 938, + "id": 969, "isConstant": false, "isLValue": false, "isPure": false, @@ -3989,21 +4418,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4628:85:2", + "src": "4548:86:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 939, + "id": 970, "nodeType": "ExpressionStatement", - "src": "4628:85:2" + "src": "4548:86:2" }, { "condition": { "argumentTypes": null, - "id": 947, + "id": 978, "isConstant": false, "isLValue": false, "isPure": false, @@ -4011,7 +4440,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4723:43:2", + "src": "4644:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -4019,18 +4448,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 944, + "id": 975, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4755:3:2", + "src": "4676:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 945, + "id": 976, "isConstant": false, "isLValue": false, "isPure": false, @@ -4038,7 +4467,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4755:10:2", + "src": "4676:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4056,26 +4485,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 940, + "id": 971, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4724:9:2", + "referencedDeclaration": 726, + "src": "4645:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 942, + "id": 973, "indexExpression": { "argumentTypes": null, - "id": 941, + "id": 972, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "4734:10:2", + "referencedDeclaration": 953, + "src": "4655:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4086,27 +4515,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4724:21:2", + "src": "4645:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 943, + "id": 974, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "4724:30:2", + "referencedDeclaration": 4016, + "src": "4645:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 946, + "id": 977, "isConstant": false, "isLValue": false, "isPure": false, @@ -4114,7 +4543,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4724:42:2", + "src": "4645:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4127,13 +4556,13 @@ } }, "falseBody": null, - "id": 959, + "id": 990, "nodeType": "IfStatement", - "src": "4719:108:2", + "src": "4640:108:2", "trueBody": { - "id": 958, + "id": 989, "nodeType": "Block", - "src": "4768:59:2", + "src": "4689:59:2", "statements": [ { "expression": { @@ -4146,18 +4575,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 953, + "id": 984, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4808:3:2", + "src": "4729:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 954, + "id": 985, "isConstant": false, "isLValue": false, "isPure": false, @@ -4165,7 +4594,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4808:10:2", + "src": "4729:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4183,26 +4612,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 949, + "id": 980, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4782:9:2", + "referencedDeclaration": 726, + "src": "4703:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 951, + "id": 982, "indexExpression": { "argumentTypes": null, - "id": 950, + "id": 981, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "4792:10:2", + "referencedDeclaration": 953, + "src": "4713:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4213,27 +4642,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4782:21:2", + "src": "4703:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 952, + "id": 983, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "4782:25:2", + "referencedDeclaration": 3970, + "src": "4703:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 955, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, @@ -4241,7 +4670,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4782:37:2", + "src": "4703:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4256,7 +4685,7 @@ "typeString": "bool" } ], - "id": 948, + "id": 979, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4264,13 +4693,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4774:7:2", + "src": "4695:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 956, + "id": 987, "isConstant": false, "isLValue": false, "isPure": false, @@ -4278,16 +4707,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4774:46:2", + "src": "4695:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 957, + "id": 988, "nodeType": "ExpressionStatement", - "src": "4774:46:2" + "src": "4695:46:2" } ] } @@ -4300,18 +4729,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 961, + "id": 992, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4852:3:2", + "src": "4773:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 962, + "id": 993, "isConstant": false, "isLValue": false, "isPure": false, @@ -4319,7 +4748,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4852:10:2", + "src": "4773:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4333,18 +4762,18 @@ "typeString": "address payable" } ], - "id": 960, + "id": 991, "name": "DSChiefChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "4837:14:2", + "referencedDeclaration": 735, + "src": "4758:14:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 963, + "id": 994, "isConstant": false, "isLValue": false, "isPure": false, @@ -4352,29 +4781,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4837:26:2", + "src": "4758:26:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 964, + "id": 995, "nodeType": "EmitStatement", - "src": "4832:31:2" + "src": "4753:31:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 965, + "id": 996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4876:4:2", + "src": "4797:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4382,60 +4811,60 @@ }, "value": "true" }, - "functionReturnParameters": 928, - "id": 966, + "functionReturnParameters": 959, + "id": 997, "nodeType": "Return", - "src": "4869:11:2" + "src": "4790:11:2" } ] }, "documentation": { - "id": 920, + "id": 951, "nodeType": "StructuredDocumentation", - "src": "4364:173:2", + "src": "4284:173:2", "text": "@notice DSChief Challenge\n @dev Keeps track of the address of the caller if successful\n @return True if the caller successfully checked for activity on DSChief" }, "functionSelector": "f36618a6", - "id": 968, + "id": 999, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 925, + "id": 956, "modifierName": { "argumentTypes": null, - "id": 924, + "id": 955, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "4593:13:2", + "referencedDeclaration": 4198, + "src": "4513:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4593:13:2" + "src": "4513:13:2" } ], "name": "chiefChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 923, + "id": 954, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 922, + "id": 953, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 968, - "src": "4564:18:2", + "scope": 999, + "src": "4484:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4443,10 +4872,10 @@ "typeString": "uint256" }, "typeName": { - "id": 921, + "id": 952, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4564:7:2", + "src": "4484:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4456,21 +4885,21 @@ "visibility": "internal" } ], - "src": "4563:20:2" + "src": "4483:20:2" }, "returnParameters": { - "id": 928, + "id": 959, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 927, + "id": 958, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 968, - "src": "4616:4:2", + "scope": 999, + "src": "4536:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4478,10 +4907,10 @@ "typeString": "bool" }, "typeName": { - "id": 926, + "id": 957, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4616:4:2", + "src": "4536:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4491,19 +4920,19 @@ "visibility": "internal" } ], - "src": "4615:6:2" + "src": "4535:6:2" }, - "scope": 1075, - "src": "4540:345:2", + "scope": 1106, + "src": "4460:346:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1019, + "id": 1050, "nodeType": "Block", - "src": "5192:299:2", + "src": "5113:299:2", "statements": [ { "expression": { @@ -4515,7 +4944,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 988, + "id": 1019, "isConstant": false, "isLValue": false, "isPure": false, @@ -4527,12 +4956,12 @@ "arguments": [ { "argumentTypes": null, - "id": 983, + "id": 1014, "name": "bidId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "5219:5:2", + "referencedDeclaration": 1004, + "src": "5140:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4548,18 +4977,18 @@ ], "expression": { "argumentTypes": null, - "id": 981, + "id": 1012, "name": "flipper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "5206:7:2", + "referencedDeclaration": 746, + "src": "5127:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" } }, - "id": 982, + "id": 1013, "isConstant": false, "isLValue": false, "isPure": false, @@ -4567,13 +4996,13 @@ "memberName": "bids", "nodeType": "MemberAccess", "referencedDeclaration": 696, - "src": "5206:12:2", + "src": "5127:12:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Bid_$689_memory_ptr_$", "typeString": "function (uint256) view external returns (struct FlipperLike.Bid memory)" } }, - "id": 984, + "id": 1015, "isConstant": false, "isLValue": false, "isPure": false, @@ -4581,14 +5010,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5206:19:2", + "src": "5127:19:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Bid_$689_memory_ptr", "typeString": "struct FlipperLike.Bid memory" } }, - "id": 985, + "id": 1016, "isConstant": false, "isLValue": true, "isPure": false, @@ -4596,7 +5025,7 @@ "memberName": "guy", "nodeType": "MemberAccess", "referencedDeclaration": 678, - "src": "5206:23:2", + "src": "5127:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4608,18 +5037,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 986, + "id": 1017, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5233:3:2", + "src": "5154:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 987, + "id": 1018, "isConstant": false, "isLValue": false, "isPure": false, @@ -4627,13 +5056,13 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5233:10:2", + "src": "5154:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "5206:37:2", + "src": "5127:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4642,14 +5071,14 @@ { "argumentTypes": null, "hexValue": "43616c6c6572206973206e6f742074686520686967682062696464657220696e207468652063757272656e742042696420696e20436f6c6c61746572616c2041756374696f6e73", - "id": 989, + "id": 1020, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5245:73:2", + "src": "5166:73:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e88b03e76bc82122d18e72f0c400e240eb0423ded12b22b77672909d807e7840", @@ -4669,7 +5098,7 @@ "typeString": "literal_string \"Caller is not the high bidder in the current Bid in Collateral Auctions\"" } ], - "id": 980, + "id": 1011, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4677,13 +5106,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5198:7:2", + "src": "5119:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 990, + "id": 1021, "isConstant": false, "isLValue": false, "isPure": false, @@ -4691,21 +5120,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5198:121:2", + "src": "5119:121:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 991, + "id": 1022, "nodeType": "ExpressionStatement", - "src": "5198:121:2" + "src": "5119:121:2" }, { "condition": { "argumentTypes": null, - "id": 999, + "id": 1030, "isConstant": false, "isLValue": false, "isPure": false, @@ -4713,7 +5142,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5329:43:2", + "src": "5250:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -4721,18 +5150,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 996, + "id": 1027, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5361:3:2", + "src": "5282:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 997, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, @@ -4740,7 +5169,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5361:10:2", + "src": "5282:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4758,26 +5187,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 992, + "id": 1023, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5330:9:2", + "referencedDeclaration": 726, + "src": "5251:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 994, + "id": 1025, "indexExpression": { "argumentTypes": null, - "id": 993, + "id": 1024, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5340:10:2", + "referencedDeclaration": 1002, + "src": "5261:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4788,27 +5217,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5330:21:2", + "src": "5251:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 995, + "id": 1026, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "5330:30:2", + "referencedDeclaration": 4016, + "src": "5251:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 998, + "id": 1029, "isConstant": false, "isLValue": false, "isPure": false, @@ -4816,7 +5245,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5330:42:2", + "src": "5251:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4829,13 +5258,13 @@ } }, "falseBody": null, - "id": 1011, + "id": 1042, "nodeType": "IfStatement", - "src": "5325:108:2", + "src": "5246:108:2", "trueBody": { - "id": 1010, + "id": 1041, "nodeType": "Block", - "src": "5374:59:2", + "src": "5295:59:2", "statements": [ { "expression": { @@ -4848,18 +5277,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1005, + "id": 1036, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5414:3:2", + "src": "5335:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1006, + "id": 1037, "isConstant": false, "isLValue": false, "isPure": false, @@ -4867,7 +5296,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5414:10:2", + "src": "5335:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4885,26 +5314,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1001, + "id": 1032, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5388:9:2", + "referencedDeclaration": 726, + "src": "5309:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 1003, + "id": 1034, "indexExpression": { "argumentTypes": null, - "id": 1002, + "id": 1033, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5398:10:2", + "referencedDeclaration": 1002, + "src": "5319:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4915,27 +5344,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5388:21:2", + "src": "5309:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1004, + "id": 1035, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "5388:25:2", + "referencedDeclaration": 3970, + "src": "5309:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 1007, + "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, @@ -4943,7 +5372,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5388:37:2", + "src": "5309:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4958,7 +5387,7 @@ "typeString": "bool" } ], - "id": 1000, + "id": 1031, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4966,13 +5395,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5380:7:2", + "src": "5301:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1008, + "id": 1039, "isConstant": false, "isLValue": false, "isPure": false, @@ -4980,16 +5409,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5380:46:2", + "src": "5301:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1009, + "id": 1040, "nodeType": "ExpressionStatement", - "src": "5380:46:2" + "src": "5301:46:2" } ] } @@ -5002,18 +5431,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1013, + "id": 1044, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5458:3:2", + "src": "5379:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1014, + "id": 1045, "isConstant": false, "isLValue": false, "isPure": false, @@ -5021,7 +5450,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5458:10:2", + "src": "5379:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5035,18 +5464,18 @@ "typeString": "address payable" } ], - "id": 1012, + "id": 1043, "name": "FlipperChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 734, - "src": "5443:14:2", + "referencedDeclaration": 739, + "src": "5364:14:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1015, + "id": 1046, "isConstant": false, "isLValue": false, "isPure": false, @@ -5054,29 +5483,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5443:26:2", + "src": "5364:26:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1016, + "id": 1047, "nodeType": "EmitStatement", - "src": "5438:31:2" + "src": "5359:31:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 1017, + "id": 1048, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5482:4:2", + "src": "5403:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5084,60 +5513,60 @@ }, "value": "true" }, - "functionReturnParameters": 979, - "id": 1018, + "functionReturnParameters": 1010, + "id": 1049, "nodeType": "Return", - "src": "5475:11:2" + "src": "5396:11:2" } ] }, "documentation": { - "id": 969, + "id": 1000, "nodeType": "StructuredDocumentation", - "src": "4889:201:2", + "src": "4810:201:2", "text": "@notice Flipper Challenge\n @dev Keeps track of the address of the caller if successful\n @dev guy, high bidder\n @return True if the caller successfully checked for activity on Flipper" }, "functionSelector": "9c1c94fd", - "id": 1020, + "id": 1051, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 976, + "id": 1007, "modifierName": { "argumentTypes": null, - "id": 975, + "id": 1006, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "5163:13:2", + "referencedDeclaration": 4198, + "src": "5084:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5163:13:2" + "src": "5084:13:2" } ], "name": "flipperChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 974, + "id": 1005, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 971, + "id": 1002, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5119:18:2", + "scope": 1051, + "src": "5040:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5145,10 +5574,10 @@ "typeString": "uint256" }, "typeName": { - "id": 970, + "id": 1001, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5119:7:2", + "src": "5040:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5159,13 +5588,13 @@ }, { "constant": false, - "id": 973, + "id": 1004, "mutability": "mutable", "name": "bidId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5139:13:2", + "scope": 1051, + "src": "5060:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5173,10 +5602,10 @@ "typeString": "uint256" }, "typeName": { - "id": 972, + "id": 1003, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5139:7:2", + "src": "5060:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5186,21 +5615,21 @@ "visibility": "internal" } ], - "src": "5118:35:2" + "src": "5039:35:2" }, "returnParameters": { - "id": 979, + "id": 1010, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 978, + "id": 1009, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5186:4:2", + "scope": 1051, + "src": "5107:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5208,10 +5637,10 @@ "typeString": "bool" }, "typeName": { - "id": 977, + "id": 1008, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5186:4:2", + "src": "5107:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5221,19 +5650,19 @@ "visibility": "internal" } ], - "src": "5185:6:2" + "src": "5106:6:2" }, - "scope": 1075, - "src": "5093:398:2", + "scope": 1106, + "src": "5014:398:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1039, + "id": 1070, "nodeType": "Block", - "src": "5750:53:2", + "src": "5671:53:2", "statements": [ { "expression": { @@ -5241,12 +5670,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1036, + "id": 1067, "name": "guy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "5794:3:2", + "referencedDeclaration": 1056, + "src": "5715:3:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5264,26 +5693,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1032, + "id": 1063, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5763:9:2", + "referencedDeclaration": 726, + "src": "5684:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 1034, + "id": 1065, "indexExpression": { "argumentTypes": null, - "id": 1033, + "id": 1064, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "5773:10:2", + "referencedDeclaration": 1054, + "src": "5694:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5294,27 +5723,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5763:21:2", + "src": "5684:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1035, + "id": 1066, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "5763:30:2", + "referencedDeclaration": 4016, + "src": "5684:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 1037, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, @@ -5322,67 +5751,67 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5763:35:2", + "src": "5684:35:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1031, - "id": 1038, + "functionReturnParameters": 1062, + "id": 1069, "nodeType": "Return", - "src": "5756:42:2" + "src": "5677:42:2" } ] }, "documentation": { - "id": 1021, + "id": 1052, "nodeType": "StructuredDocumentation", - "src": "5495:160:2", + "src": "5416:160:2", "text": "@notice Check if guy is a redeemer\n @dev Verify if the address of guy exists\n @param guy Address to verify\n @return True if guy is a redeemer" }, "functionSelector": "ebfa62b9", - "id": 1040, + "id": 1071, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1028, + "id": 1059, "modifierName": { "argumentTypes": null, - "id": 1027, + "id": 1058, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "5721:13:2", + "referencedDeclaration": 4198, + "src": "5642:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5721:13:2" + "src": "5642:13:2" } ], "name": "verify", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1026, + "id": 1057, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1023, + "id": 1054, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5674:18:2", + "scope": 1071, + "src": "5595:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5390,10 +5819,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1022, + "id": 1053, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5674:7:2", + "src": "5595:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5404,13 +5833,13 @@ }, { "constant": false, - "id": 1025, + "id": 1056, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5694:11:2", + "scope": 1071, + "src": "5615:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5418,10 +5847,10 @@ "typeString": "address" }, "typeName": { - "id": 1024, + "id": 1055, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5694:7:2", + "src": "5615:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5432,21 +5861,21 @@ "visibility": "internal" } ], - "src": "5673:33:2" + "src": "5594:33:2" }, "returnParameters": { - "id": 1031, + "id": 1062, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1030, + "id": 1061, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5744:4:2", + "scope": 1071, + "src": "5665:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5454,10 +5883,10 @@ "typeString": "bool" }, "typeName": { - "id": 1029, + "id": 1060, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5744:4:2", + "src": "5665:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5467,19 +5896,19 @@ "visibility": "internal" } ], - "src": "5743:6:2" + "src": "5664:6:2" }, - "scope": 1075, - "src": "5658:145:2", + "scope": 1106, + "src": "5579:145:2", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 1056, + "id": 1087, "nodeType": "Block", - "src": "5921:113:2", + "src": "5842:113:2", "statements": [ { "expression": { @@ -5490,12 +5919,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1046, + "id": 1077, "name": "PAUSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, - "src": "5943:11:2", + "referencedDeclaration": 719, + "src": "5864:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5505,18 +5934,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1047, + "id": 1078, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5956:3:2", + "src": "5877:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1048, + "id": 1079, "isConstant": false, "isLValue": false, "isPure": false, @@ -5524,7 +5953,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5956:10:2", + "src": "5877:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5542,18 +5971,18 @@ "typeString": "address payable" } ], - "id": 1045, + "id": 1076, "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, - "src": "5935:7:2", + "referencedDeclaration": 1238, + "src": "5856:7:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) view returns (bool)" } }, - "id": 1049, + "id": 1080, "isConstant": false, "isLValue": false, "isPure": false, @@ -5561,7 +5990,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5935:32:2", + "src": "5856:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5571,14 +6000,14 @@ { "argumentTypes": null, "hexValue": "4d616b65724261646765733a206d75737420686176652070617573657220726f6c6520746f207061757365", - "id": 1050, + "id": 1081, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5969:45:2", + "src": "5890:45:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d33b68c439b8482d10dd00f9785755fa4ae9979ec8a8ee9bf8b872747d1b8f67", @@ -5598,7 +6027,7 @@ "typeString": "literal_string \"MakerBadges: must have pauser role to pause\"" } ], - "id": 1044, + "id": 1075, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5606,13 +6035,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5927:7:2", + "src": "5848:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1051, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, @@ -5620,16 +6049,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5927:88:2", + "src": "5848:88:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1052, + "id": 1083, "nodeType": "ExpressionStatement", - "src": "5927:88:2" + "src": "5848:88:2" }, { "expression": { @@ -5637,18 +6066,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1053, + "id": 1084, "name": "_pause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4193, - "src": "6021:6:2", + "referencedDeclaration": 4224, + "src": "5942:6:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1054, + "id": 1085, "isConstant": false, "isLValue": false, "isPure": false, @@ -5656,27 +6085,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6021:8:2", + "src": "5942:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1055, + "id": 1086, "nodeType": "ExpressionStatement", - "src": "6021:8:2" + "src": "5942:8:2" } ] }, "documentation": { - "id": 1041, + "id": 1072, "nodeType": "StructuredDocumentation", - "src": "5807:85:2", + "src": "5728:85:2", "text": "@notice Pause all the functions\n @dev the caller must have the 'PAUSER_ROLE'" }, "functionSelector": "8456cb59", - "id": 1057, + "id": 1088, "implemented": true, "kind": "function", "modifiers": [], @@ -5684,28 +6113,28 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1042, + "id": 1073, "nodeType": "ParameterList", "parameters": [], - "src": "5909:2:2" + "src": "5830:2:2" }, "returnParameters": { - "id": 1043, + "id": 1074, "nodeType": "ParameterList", "parameters": [], - "src": "5921:0:2" + "src": "5842:0:2" }, - "scope": 1075, - "src": "5895:139:2", + "scope": 1106, + "src": "5816:139:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1073, + "id": 1104, "nodeType": "Block", - "src": "6156:127:2", + "src": "6077:127:2", "statements": [ { "expression": { @@ -5716,12 +6145,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1063, + "id": 1094, "name": "PAUSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, - "src": "6182:11:2", + "referencedDeclaration": 719, + "src": "6103:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5731,18 +6160,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1064, + "id": 1095, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "6195:3:2", + "src": "6116:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1065, + "id": 1096, "isConstant": false, "isLValue": false, "isPure": false, @@ -5750,7 +6179,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6195:10:2", + "src": "6116:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5768,18 +6197,18 @@ "typeString": "address payable" } ], - "id": 1062, + "id": 1093, "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, - "src": "6174:7:2", + "referencedDeclaration": 1238, + "src": "6095:7:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) view returns (bool)" } }, - "id": 1066, + "id": 1097, "isConstant": false, "isLValue": false, "isPure": false, @@ -5787,7 +6216,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6174:32:2", + "src": "6095:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5797,14 +6226,14 @@ { "argumentTypes": null, "hexValue": "4d616b65724261646765733a206d75737420686176652070617573657220726f6c6520746f20756e7061757365", - "id": 1067, + "id": 1098, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6208:47:2", + "src": "6129:47:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e81d67bdac033cbd58eea8cc6d19c5b2672fe1faa73f3d7c71703b8e96106b7b", @@ -5824,7 +6253,7 @@ "typeString": "literal_string \"MakerBadges: must have pauser role to unpause\"" } ], - "id": 1061, + "id": 1092, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5832,13 +6261,13 @@ -18 ], "referencedDeclaration": -18, - "src": "6166:7:2", + "src": "6087:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1068, + "id": 1099, "isConstant": false, "isLValue": false, "isPure": false, @@ -5846,16 +6275,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6166:90:2", + "src": "6087:90:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1069, + "id": 1100, "nodeType": "ExpressionStatement", - "src": "6166:90:2" + "src": "6087:90:2" }, { "expression": { @@ -5863,18 +6292,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1070, + "id": 1101, "name": "_unpause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4209, - "src": "6266:8:2", + "referencedDeclaration": 4240, + "src": "6187:8:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1071, + "id": 1102, "isConstant": false, "isLValue": false, "isPure": false, @@ -5882,27 +6311,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6266:10:2", + "src": "6187:10:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1072, + "id": 1103, "nodeType": "ExpressionStatement", - "src": "6266:10:2" + "src": "6187:10:2" } ] }, "documentation": { - "id": 1058, + "id": 1089, "nodeType": "StructuredDocumentation", - "src": "6038:87:2", + "src": "5959:87:2", "text": "@notice Unpause all the functions\n @dev the caller must have the 'PAUSER_ROLE'" }, "functionSelector": "3f4ba83a", - "id": 1074, + "id": 1105, "implemented": true, "kind": "function", "modifiers": [], @@ -5910,29 +6339,29 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1059, + "id": 1090, "nodeType": "ParameterList", "parameters": [], - "src": "6144:2:2" + "src": "6065:2:2" }, "returnParameters": { - "id": 1060, + "id": 1091, "nodeType": "ParameterList", "parameters": [], - "src": "6156:0:2" + "src": "6077:0:2" }, - "scope": 1075, - "src": "6128:155:2", + "scope": 1106, + "src": "6049:155:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 1076, - "src": "1381:4905:2" + "scope": 1107, + "src": "1381:4826:2" } ], - "src": "37:6250:2" + "src": "37:6171:2" }, "legacyAST": { "absolutePath": "/home/sencha/maker-badges/contracts/MakerBadges.sol", @@ -5944,13 +6373,13 @@ 697 ], "MakerBadges": [ - 1075 + 1106 ], "PotLike": [ 664 ] }, - "id": 1076, + "id": 1107, "license": "GPL-3.0", "nodeType": "SourceUnit", "nodes": [ @@ -5959,7 +6388,7 @@ "literals": [ "solidity", "0.6", - ".10" + ".11" ], "nodeType": "PragmaDirective", "src": "37:23:2" @@ -5978,8 +6407,8 @@ "file": "@openzeppelin/contracts/access/Ownable.sol", "id": 637, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1528, + "scope": 1107, + "sourceUnit": 1559, "src": "532:52:2", "symbolAliases": [], "unitAlias": "" @@ -5989,8 +6418,8 @@ "file": "@openzeppelin/contracts/access/AccessControl.sol", "id": 638, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1419, + "scope": 1107, + "sourceUnit": 1450, "src": "585:58:2", "symbolAliases": [], "unitAlias": "" @@ -6000,8 +6429,8 @@ "file": "@openzeppelin/contracts/utils/Pausable.sol", "id": 639, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 4211, + "scope": 1107, + "sourceUnit": 4242, "src": "644:52:2", "symbolAliases": [], "unitAlias": "" @@ -6011,8 +6440,8 @@ "file": "@openzeppelin/contracts/math/SafeMath.sol", "id": 640, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1864, + "scope": 1107, + "sourceUnit": 1895, "src": "697:51:2", "symbolAliases": [], "unitAlias": "" @@ -6022,8 +6451,8 @@ "file": "@openzeppelin/contracts/utils/EnumerableSet.sol", "id": 641, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 4121, + "scope": 1107, + "sourceUnit": 4152, "src": "749:57:2", "symbolAliases": [], "unitAlias": "" @@ -6305,7 +6734,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "808:243:2" }, { @@ -6411,7 +6840,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "1053:84:2" }, { @@ -6756,7 +7185,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "1139:240:2" }, { @@ -6769,10 +7198,10 @@ "id": 698, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1527, + "referencedDeclaration": 1558, "src": "1405:7:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$1527", + "typeIdentifier": "t_contract$_Ownable_$1558", "typeString": "contract Ownable" } }, @@ -6787,10 +7216,10 @@ "id": 700, "name": "AccessControl", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1418, + "referencedDeclaration": 1449, "src": "1414:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_AccessControl_$1418", + "typeIdentifier": "t_contract$_AccessControl_$1449", "typeString": "contract AccessControl" } }, @@ -6805,10 +7234,10 @@ "id": 702, "name": "Pausable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4210, + "referencedDeclaration": 4241, "src": "1429:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pausable_$4210", + "typeIdentifier": "t_contract$_Pausable_$4241", "typeString": "contract Pausable" } }, @@ -6818,21 +7247,21 @@ } ], "contractDependencies": [ - 1135, - 1418, - 1527, - 4210 + 1166, + 1449, + 1558, + 4241 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1075, + "id": 1106, "linearizedBaseContracts": [ - 1075, - 4210, - 1418, - 1527, - 1135 + 1106, + 4241, + 1449, + 1558, + 1166 ], "name": "MakerBadges", "nodeType": "ContractDefinition", @@ -6844,10 +7273,10 @@ "id": 704, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1863, + "referencedDeclaration": 1894, "src": "1470:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1863", + "typeIdentifier": "t_contract$_SafeMath_$1894", "typeString": "library SafeMath" } }, @@ -6871,38 +7300,121 @@ "id": 707, "name": "EnumerableSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4120, + "referencedDeclaration": 4151, "src": "1500:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_EnumerableSet_$4120", + "typeIdentifier": "t_contract$_EnumerableSet_$4151", "typeString": "library EnumerableSet" } }, - "nodeType": "UsingForDirective", - "src": "1494:49:2", - "typeName": { - "contractScope": null, - "id": 708, - "name": "EnumerableSet.AddressSet", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, - "src": "1518:24:2", + "nodeType": "UsingForDirective", + "src": "1494:49:2", + "typeName": { + "contractScope": null, + "id": 708, + "name": "EnumerableSet.AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3947, + "src": "1518:24:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + } + }, + { + "constant": true, + "functionSelector": "75b238fc", + "id": 714, + "mutability": "constant", + "name": "ADMIN_ROLE", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1106, + "src": "1547:60:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 710, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1547:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "41444d494e5f524f4c45", + "id": 712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1594:12:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", + "typeString": "literal_string \"ADMIN_ROLE\"" + }, + "value": "ADMIN_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", + "typeString": "literal_string \"ADMIN_ROLE\"" + } + ], + "id": 711, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1584:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1584:23:2", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", - "typeString": "struct EnumerableSet.AddressSet" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } - } + }, + "visibility": "public" }, { "constant": true, "functionSelector": "e63ab1e9", - "id": 714, + "id": 719, "mutability": "constant", "name": "PAUSER_ROLE", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1547:62:2", + "scope": 1106, + "src": "1611:62:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -6910,10 +7422,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 710, + "id": 715, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1547:7:2", + "src": "1611:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6925,14 +7437,14 @@ { "argumentTypes": null, "hexValue": "5041555345525f524f4c45", - "id": 712, + "id": 717, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1595:13:2", + "src": "1659:13:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a", @@ -6948,18 +7460,18 @@ "typeString": "literal_string \"PAUSER_ROLE\"" } ], - "id": 711, + "id": 716, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "1585:9:2", + "src": "1649:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 713, + "id": 718, "isConstant": false, "isLValue": false, "isPure": true, @@ -6967,7 +7479,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1585:24:2", + "src": "1649:24:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6979,13 +7491,13 @@ { "constant": false, "functionSelector": "c2b40ae4", - "id": 717, + "id": 722, "mutability": "mutable", "name": "roots", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1614:22:2", + "scope": 1106, + "src": "1678:22:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -6994,19 +7506,19 @@ }, "typeName": { "baseType": { - "id": 715, + "id": 720, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1614:7:2", + "src": "1678:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 716, + "id": 721, "length": null, "nodeType": "ArrayTypeName", - "src": "1614:9:2", + "src": "1678:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -7017,46 +7529,46 @@ }, { "constant": false, - "id": 721, + "id": 726, "mutability": "mutable", "name": "redeemers", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1641:63:2", + "scope": 1106, + "src": "1705:63:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet)" }, "typeName": { - "id": 720, + "id": 725, "keyType": { - "id": 718, + "id": 723, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1650:7:2", + "src": "1714:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "1641:45:2", + "src": "1705:45:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet)" }, "valueType": { "contractScope": null, - "id": 719, + "id": 724, "name": "EnumerableSet.AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, - "src": "1661:24:2", + "referencedDeclaration": 3947, + "src": "1725:24:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } } @@ -7067,28 +7579,28 @@ { "anonymous": false, "documentation": { - "id": 722, + "id": 727, "nodeType": "StructuredDocumentation", - "src": "1709:15:2", + "src": "1773:15:2", "text": "@dev Events" }, - "id": 726, + "id": 731, "name": "PotChecked", "nodeType": "EventDefinition", "parameters": { - "id": 725, + "id": 730, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 724, + "id": 729, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 726, - "src": "1744:11:2", + "scope": 731, + "src": "1808:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7096,10 +7608,10 @@ "typeString": "address" }, "typeName": { - "id": 723, + "id": 728, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1744:7:2", + "src": "1808:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7110,30 +7622,30 @@ "visibility": "internal" } ], - "src": "1743:13:2" + "src": "1807:13:2" }, - "src": "1727:30:2" + "src": "1791:30:2" }, { "anonymous": false, "documentation": null, - "id": 730, + "id": 735, "name": "DSChiefChecked", "nodeType": "EventDefinition", "parameters": { - "id": 729, + "id": 734, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 728, + "id": 733, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 730, - "src": "1781:11:2", + "scope": 735, + "src": "1845:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7141,10 +7653,10 @@ "typeString": "address" }, "typeName": { - "id": 727, + "id": 732, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1781:7:2", + "src": "1845:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7155,30 +7667,30 @@ "visibility": "internal" } ], - "src": "1780:13:2" + "src": "1844:13:2" }, - "src": "1760:34:2" + "src": "1824:34:2" }, { "anonymous": false, "documentation": null, - "id": 734, + "id": 739, "name": "FlipperChecked", "nodeType": "EventDefinition", "parameters": { - "id": 733, + "id": 738, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 732, + "id": 737, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 734, - "src": "1818:11:2", + "scope": 739, + "src": "1882:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7186,10 +7698,10 @@ "typeString": "address" }, "typeName": { - "id": 731, + "id": 736, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1818:7:2", + "src": "1882:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7200,25 +7712,25 @@ "visibility": "internal" } ], - "src": "1817:13:2" + "src": "1881:13:2" }, - "src": "1797:34:2" + "src": "1861:34:2" }, { "constant": false, "documentation": { - "id": 735, + "id": 740, "nodeType": "StructuredDocumentation", - "src": "1835:13:2", + "src": "1899:13:2", "text": "@dev Data" }, - "id": 737, + "id": 742, "mutability": "immutable", "name": "pot", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1851:31:2", + "scope": 1106, + "src": "1915:31:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -7227,11 +7739,11 @@ }, "typeName": { "contractScope": null, - "id": 736, + "id": 741, "name": "PotLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 664, - "src": "1851:7:2", + "src": "1915:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" @@ -7242,13 +7754,13 @@ }, { "constant": false, - "id": 739, + "id": 744, "mutability": "immutable", "name": "chief", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1886:36:2", + "scope": 1106, + "src": "1950:36:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -7257,11 +7769,11 @@ }, "typeName": { "contractScope": null, - "id": 738, + "id": 743, "name": "DSChiefLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 672, - "src": "1886:11:2", + "src": "1950:11:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" @@ -7272,13 +7784,13 @@ }, { "constant": false, - "id": 741, + "id": 746, "mutability": "immutable", "name": "flipper", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1926:38:2", + "scope": 1106, + "src": "1990:38:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -7287,11 +7799,11 @@ }, "typeName": { "contractScope": null, - "id": 740, + "id": 745, "name": "FlipperLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 697, - "src": "1926:11:2", + "src": "1990:11:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" @@ -7303,18 +7815,18 @@ { "constant": true, "documentation": { - "id": 742, + "id": 747, "nodeType": "StructuredDocumentation", - "src": "1969:13:2", + "src": "2033:13:2", "text": "@dev Math" }, - "id": 747, + "id": 752, "mutability": "constant", "name": "RAY", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1985:31:2", + "scope": 1106, + "src": "2049:31:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -7322,10 +7834,10 @@ "typeString": "uint256" }, "typeName": { - "id": 743, + "id": 748, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1985:7:2", + "src": "2049:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7337,7 +7849,7 @@ "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" }, - "id": 746, + "id": 751, "isConstant": false, "isLValue": false, "isPure": true, @@ -7345,14 +7857,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 744, + "id": 749, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2008:2:2", + "src": "2072:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -7365,14 +7877,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3237", - "id": 745, + "id": 750, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2014:2:2", + "src": "2078:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_27_by_1", @@ -7380,7 +7892,7 @@ }, "value": "27" }, - "src": "2008:8:2", + "src": "2072:8:2", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" @@ -7390,26 +7902,26 @@ }, { "body": { - "id": 767, + "id": 772, "nodeType": "Block", - "src": "2105:73:2", + "src": "2169:73:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 765, + "id": 770, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 758, + "id": 763, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 756, - "src": "2155:1:2", + "referencedDeclaration": 761, + "src": "2219:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7423,7 +7935,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 764, + "id": 769, "isConstant": false, "isLValue": false, "isPure": false, @@ -7433,12 +7945,12 @@ "arguments": [ { "argumentTypes": null, - "id": 761, + "id": 766, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 751, - "src": "2165:1:2", + "referencedDeclaration": 756, + "src": "2229:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7454,32 +7966,32 @@ ], "expression": { "argumentTypes": null, - "id": 759, + "id": 764, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "2159:1:2", + "referencedDeclaration": 754, + "src": "2223:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 760, + "id": 765, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 1776, - "src": "2159:5:2", + "referencedDeclaration": 1807, + "src": "2223:5: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": 762, + "id": 767, "isConstant": false, "isLValue": false, "isPure": false, @@ -7487,7 +7999,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2159:8:2", + "src": "2223:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7498,76 +8010,76 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 763, + "id": 768, "name": "RAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 747, - "src": "2170:3:2", + "referencedDeclaration": 752, + "src": "2234:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2159:14:2", + "src": "2223:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2155:18:2", + "src": "2219:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 766, + "id": 771, "nodeType": "ExpressionStatement", - "src": "2155:18:2" + "src": "2219:18:2" } ] }, "documentation": null, - "id": 768, + "id": 773, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 754, + "id": 759, "modifierName": { "argumentTypes": null, - "id": 753, + "id": 758, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "2071:13:2", + "referencedDeclaration": 4198, + "src": "2135:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2071:13:2" + "src": "2135:13:2" } ], "name": "rmul", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 752, + "id": 757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 749, + "id": 754, "mutability": "mutable", "name": "x", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2035:9:2", + "scope": 773, + "src": "2099:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7575,10 +8087,10 @@ "typeString": "uint256" }, "typeName": { - "id": 748, + "id": 753, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2035:7:2", + "src": "2099:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7589,13 +8101,13 @@ }, { "constant": false, - "id": 751, + "id": 756, "mutability": "mutable", "name": "y", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2046:9:2", + "scope": 773, + "src": "2110:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7603,10 +8115,10 @@ "typeString": "uint256" }, "typeName": { - "id": 750, + "id": 755, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2046:7:2", + "src": "2110:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7616,21 +8128,21 @@ "visibility": "internal" } ], - "src": "2034:22:2" + "src": "2098:22:2" }, "returnParameters": { - "id": 757, + "id": 762, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 756, + "id": 761, "mutability": "mutable", "name": "z", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2094:9:2", + "scope": 773, + "src": "2158:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7638,10 +8150,10 @@ "typeString": "uint256" }, "typeName": { - "id": 755, + "id": 760, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2094:7:2", + "src": "2158:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7651,19 +8163,19 @@ "visibility": "internal" } ], - "src": "2093:11:2" + "src": "2157:11:2" }, - "scope": 1075, - "src": "2021:157:2", + "scope": 1106, + "src": "2085:157:2", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 801, + "id": 818, "nodeType": "Block", - "src": "2203:682:2", + "src": "2313:355:2", "statements": [ { "expression": { @@ -7671,12 +8183,12 @@ "arguments": [ { "argumentTypes": null, - "id": 772, + "id": 783, "name": "DEFAULT_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1161, - "src": "2224:18:2", + "referencedDeclaration": 1192, + "src": "2334:18:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7687,18 +8199,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 773, + "id": 784, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "2244:5:2", + "referencedDeclaration": 1494, + "src": "2354:5:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 774, + "id": 785, "isConstant": false, "isLValue": false, "isPure": false, @@ -7706,7 +8218,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2244:7:2", + "src": "2354:7:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7725,18 +8237,18 @@ "typeString": "address" } ], - "id": 771, + "id": 782, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "2213:10:2", + "referencedDeclaration": 1375, + "src": "2323:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 775, + "id": 786, "isConstant": false, "isLValue": false, "isPure": false, @@ -7744,16 +8256,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2213:39:2", + "src": "2323:39:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 776, + "id": 787, "nodeType": "ExpressionStatement", - "src": "2213:39:2" + "src": "2323:39:2" }, { "expression": { @@ -7761,12 +8273,102 @@ "arguments": [ { "argumentTypes": null, - "id": 778, - "name": "PAUSER_ROLE", + "id": 789, + "name": "ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 714, - "src": "2274:11:2", + "src": "2384:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 790, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "2396:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2396:7:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 788, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1375, + "src": "2373:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2373:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 793, + "nodeType": "ExpressionStatement", + "src": "2373:31:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 795, + "name": "PAUSER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 719, + "src": "2425:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7777,18 +8379,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 779, + "id": 796, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "2287:5:2", + "referencedDeclaration": 1494, + "src": "2438:5:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 780, + "id": 797, "isConstant": false, "isLValue": false, "isPure": false, @@ -7796,7 +8398,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2287:7:2", + "src": "2438:7:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7815,18 +8417,18 @@ "typeString": "address" } ], - "id": 777, + "id": 794, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "2263:10:2", + "referencedDeclaration": 1375, + "src": "2414:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 781, + "id": 798, "isConstant": false, "isLValue": false, "isPure": false, @@ -7834,33 +8436,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2263:32:2", + "src": "2414:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 782, + "id": 799, "nodeType": "ExpressionStatement", - "src": "2263:32:2" + "src": "2414:32:2" }, { "expression": { "argumentTypes": null, - "id": 787, + "id": 804, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 783, + "id": 800, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "2421:3:2", + "referencedDeclaration": 742, + "src": "2490:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" @@ -7873,82 +8475,77 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307845413139304442444337616446323635323630656334644136653936373546643466354137386262", - "id": 785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2435:42:2", - "subdenomination": null, + "id": 802, + "name": "pot_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 775, + "src": "2504:4:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xEA190DBDC7adF265260ec4dA6e9675Fd4f5A78bb" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 784, + "id": 801, "name": "PotLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 664, - "src": "2427:7:2", + "src": "2496:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_PotLike_$664_$", "typeString": "type(contract PotLike)" } }, - "id": 786, + "id": 803, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2427:51:2", + "src": "2496:13:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "src": "2421:57:2", + "src": "2490:19:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 788, + "id": 805, "nodeType": "ExpressionStatement", - "src": "2421:57:2" + "src": "2490:19:2" }, { "expression": { "argumentTypes": null, - "id": 793, + "id": 810, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 789, + "id": 806, "name": "chief", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "2611:5:2", + "referencedDeclaration": 744, + "src": "2553:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" @@ -7961,82 +8558,77 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307862424646433736653934423334463732443936443035346233316636343234323439633133333764", - "id": 791, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2631:42:2", - "subdenomination": null, + "id": 808, + "name": "chief_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 777, + "src": "2573:6:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xbBFFC76e94B34F72D96D054b31f6424249c1337d" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 790, + "id": 807, "name": "DSChiefLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 672, - "src": "2619:11:2", + "src": "2561:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DSChiefLike_$672_$", "typeString": "type(contract DSChiefLike)" } }, - "id": 792, + "id": 809, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2619:55:2", + "src": "2561:19:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "src": "2611:63:2", + "src": "2553:27:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "id": 794, + "id": 811, "nodeType": "ExpressionStatement", - "src": "2611:63:2" + "src": "2553:27:2" }, { "expression": { "argumentTypes": null, - "id": 799, + "id": 816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 795, + "id": 812, "name": "flipper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "2814:7:2", + "referencedDeclaration": 746, + "src": "2631:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" @@ -8049,99 +8641,182 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307842343031333945613336443335643043394636613265363236303142363136463146666242443162", - "id": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2836:42:2", - "subdenomination": null, + "id": 814, + "name": "flipper_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "2653:8:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xB40139Ea36D35d0C9F6a2e62601B616F1FfbBD1b" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 796, + "id": 813, "name": "FlipperLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 697, - "src": "2824:11:2", + "src": "2641:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FlipperLike_$697_$", "typeString": "type(contract FlipperLike)" } }, - "id": 798, + "id": 815, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2824:55:2", + "src": "2641:21:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" } }, - "src": "2814:65:2", + "src": "2631:31:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_FlipperLike_$697", + "typeString": "contract FlipperLike" + } + }, + "id": 817, + "nodeType": "ExpressionStatement", + "src": "2631:31:2" + } + ] + }, + "documentation": null, + "id": 819, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 780, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 775, + "mutability": "mutable", + "name": "pot_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2258:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 774, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2258:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 777, + "mutability": "mutable", + "name": "chief_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2272:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 776, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2272:7:2", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_contract$_FlipperLike_$697", - "typeString": "contract FlipperLike" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 800, - "nodeType": "ExpressionStatement", - "src": "2814:65:2" + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 779, + "mutability": "mutable", + "name": "flipper_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2288:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2288:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" } - ] - }, - "documentation": null, - "id": 802, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 769, - "nodeType": "ParameterList", - "parameters": [], - "src": "2193:2:2" + ], + "src": "2257:48:2" }, "returnParameters": { - "id": 770, + "id": 781, "nodeType": "ParameterList", "parameters": [], - "src": "2203:0:2" + "src": "2313:0:2" }, - "scope": 1075, - "src": "2182:703:2", + "scope": 1106, + "src": "2246:422:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 809, + "id": 826, "nodeType": "Block", - "src": "3042:19:2", + "src": "2825:19:2", "statements": [ { "expression": { @@ -8149,7 +8824,7 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 806, + "id": 823, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -8157,13 +8832,13 @@ -19 ], "referencedDeclaration": -19, - "src": "3048:6:2", + "src": "2831:6:2", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 807, + "id": 824, "isConstant": false, "isLValue": false, "isPure": false, @@ -8171,26 +8846,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3048:8:2", + "src": "2831:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 808, + "id": 825, "nodeType": "ExpressionStatement", - "src": "3048:8:2" + "src": "2831:8:2" } ] }, "documentation": { - "id": 803, + "id": 820, "nodeType": "StructuredDocumentation", - "src": "2889:130:2", + "src": "2672:130:2", "text": "@notice Fallback function\n @dev Added not payable to revert transactions not matching any other function which send value" }, - "id": 810, + "id": 827, "implemented": true, "kind": "fallback", "modifiers": [], @@ -8198,45 +8873,228 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 804, + "id": 821, "nodeType": "ParameterList", "parameters": [], - "src": "3030:2:2" + "src": "2813:2:2" }, "returnParameters": { - "id": 805, + "id": 822, "nodeType": "ParameterList", "parameters": [], - "src": "3042:0:2" + "src": "2825:0:2" }, - "scope": 1075, - "src": "3022:39:2", + "scope": 1106, + "src": "2805:39:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { + "id": 840, + "nodeType": "Block", + "src": "2890:90:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 832, + "name": "ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 714, + "src": "2914:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 833, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2926:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2926:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 831, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1238, + "src": "2906:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2906:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43616c6c6572206973206e6f7420616e2061646d696e", + "id": 836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2939:24:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c42e6f213cb252dbb58053bcbc469c8ef3e91890f0261efae8e5d5a1aecda226", + "typeString": "literal_string \"Caller is not an admin\"" + }, + "value": "Caller is not an admin" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c42e6f213cb252dbb58053bcbc469c8ef3e91890f0261efae8e5d5a1aecda226", + "typeString": "literal_string \"Caller is not an admin\"" + } + ], + "id": 830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2898:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2898:66:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 838, + "nodeType": "ExpressionStatement", + "src": "2898:66:2" + }, + { + "id": 839, + "nodeType": "PlaceholderStatement", + "src": "2972:1:2" + } + ] + }, + "documentation": { + "id": 828, + "nodeType": "StructuredDocumentation", + "src": "2848:18:2", + "text": "@dev Modifiers" + }, + "id": 841, + "name": "onlyAdmin", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { "id": 829, + "nodeType": "ParameterList", + "parameters": [], + "src": "2887:2:2" + }, + "src": "2869:111:2", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 860, "nodeType": "Block", - "src": "3415:46:2", + "src": "3335:46:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 825, + "id": 856, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 823, + "id": 854, "name": "roots", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "3421:5:2", + "referencedDeclaration": 722, + "src": "3341:5:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" @@ -8246,39 +9104,39 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 824, + "id": 855, "name": "rootHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 814, - "src": "3429:10:2", + "referencedDeclaration": 845, + "src": "3349:10:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "src": "3421:18:2", + "src": "3341:18:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 826, + "id": 857, "nodeType": "ExpressionStatement", - "src": "3421:18:2" + "src": "3341:18:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 827, + "id": 858, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3452:4:2", + "src": "3372:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -8286,79 +9144,79 @@ }, "value": "true" }, - "functionReturnParameters": 822, - "id": 828, + "functionReturnParameters": 853, + "id": 859, "nodeType": "Return", - "src": "3445:11:2" + "src": "3365:11:2" } ] }, "documentation": { - "id": 811, + "id": 842, "nodeType": "StructuredDocumentation", - "src": "3065:245:2", + "src": "2985:245:2", "text": "@notice Set Merkle Tree Root Hashes array\n @dev Called by owner to update roots for different address batches by templateId\n @param rootHashes Root hashes of the Merkle Trees by templateId\n @return True if successfully updated" }, "functionSelector": "aca57703", - "id": 830, + "id": 861, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 817, + "id": 848, "modifierName": { "argumentTypes": null, - "id": 816, - "name": "onlyOwner", + "id": 847, + "name": "onlyAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "3376:9:2", + "referencedDeclaration": 841, + "src": "3296:9:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3376:9:2" + "src": "3296:9:2" }, { "arguments": null, - "id": 819, + "id": 850, "modifierName": { "argumentTypes": null, - "id": 818, + "id": 849, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "3386:13:2", + "referencedDeclaration": 4198, + "src": "3306:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3386:13:2" + "src": "3306:13:2" } ], "name": "setRootHashes", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 815, + "id": 846, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 814, + "id": 845, "mutability": "mutable", "name": "rootHashes", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 830, - "src": "3336:29:2", + "scope": 861, + "src": "3256:29:2", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -8367,19 +9225,19 @@ }, "typeName": { "baseType": { - "id": 812, + "id": 843, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3336:7:2", + "src": "3256:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 813, + "id": 844, "length": null, "nodeType": "ArrayTypeName", - "src": "3336:9:2", + "src": "3256:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -8389,21 +9247,21 @@ "visibility": "internal" } ], - "src": "3335:31:2" + "src": "3255:31:2" }, "returnParameters": { - "id": 822, + "id": 853, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 821, + "id": 852, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 830, - "src": "3409:4:2", + "scope": 861, + "src": "3329:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8411,10 +9269,10 @@ "typeString": "bool" }, "typeName": { - "id": 820, + "id": 851, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3409:4:2", + "src": "3329:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8424,34 +9282,34 @@ "visibility": "internal" } ], - "src": "3408:6:2" + "src": "3328:6:2" }, - "scope": 1075, - "src": "3313:148:2", + "scope": 1106, + "src": "3233:148:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 870, + "id": 901, "nodeType": "Block", - "src": "3713:129:2", + "src": "3633:129:2", "statements": [ { "assignments": [ - 841 + 872 ], "declarations": [ { "constant": false, - "id": 841, + "id": 872, "mutability": "mutable", "name": "slice", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 870, - "src": "3719:13:2", + "scope": 901, + "src": "3639:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8459,10 +9317,10 @@ "typeString": "uint256" }, "typeName": { - "id": 840, + "id": 871, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3719:7:2", + "src": "3639:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8472,18 +9330,18 @@ "visibility": "internal" } ], - "id": 846, + "id": 877, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 844, + "id": 875, "name": "guy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 833, - "src": "3743:3:2", + "referencedDeclaration": 864, + "src": "3663:3:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8499,18 +9357,18 @@ ], "expression": { "argumentTypes": null, - "id": 842, + "id": 873, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3735:3:2", + "referencedDeclaration": 742, + "src": "3655:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 843, + "id": 874, "isConstant": false, "isLValue": false, "isPure": false, @@ -8518,13 +9376,13 @@ "memberName": "pie", "nodeType": "MemberAccess", "referencedDeclaration": 648, - "src": "3735:7:2", + "src": "3655:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 845, + "id": 876, "isConstant": false, "isLValue": false, "isPure": false, @@ -8532,7 +9390,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3735:12:2", + "src": "3655:12:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8540,22 +9398,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3719:28:2" + "src": "3639:28:2" }, { "assignments": [ - 848 + 879 ], "declarations": [ { "constant": false, - "id": 848, + "id": 879, "mutability": "mutable", "name": "chi", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 870, - "src": "3753:11:2", + "scope": 901, + "src": "3673:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8563,10 +9421,10 @@ "typeString": "uint256" }, "typeName": { - "id": 847, + "id": 878, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3753:7:2", + "src": "3673:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8576,7 +9434,7 @@ "visibility": "internal" } ], - "id": 862, + "id": 893, "initialValue": { "argumentTypes": null, "condition": { @@ -8588,19 +9446,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 853, + "id": 884, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 849, + "id": 880, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -17, - "src": "3768:3:2", + "src": "3688:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8615,18 +9473,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 850, + "id": 881, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3774:3:2", + "referencedDeclaration": 742, + "src": "3694:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 851, + "id": 882, "isConstant": false, "isLValue": false, "isPure": false, @@ -8634,13 +9492,13 @@ "memberName": "rho", "nodeType": "MemberAccess", "referencedDeclaration": 658, - "src": "3774:7:2", + "src": "3694:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 852, + "id": 883, "isConstant": false, "isLValue": false, "isPure": false, @@ -8648,28 +9506,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3774:9:2", + "src": "3694:9:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3768:15:2", + "src": "3688:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 854, + "id": 885, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3767:17:2", + "src": "3687:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8682,18 +9540,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 858, + "id": 889, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3800:3:2", + "referencedDeclaration": 742, + "src": "3720:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 859, + "id": 890, "isConstant": false, "isLValue": false, "isPure": false, @@ -8701,13 +9559,13 @@ "memberName": "chi", "nodeType": "MemberAccess", "referencedDeclaration": 653, - "src": "3800:7:2", + "src": "3720:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 860, + "id": 891, "isConstant": false, "isLValue": false, "isPure": false, @@ -8715,20 +9573,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3800:9:2", + "src": "3720:9:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 861, + "id": 892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "3767:42:2", + "src": "3687:42:2", "trueExpression": { "argumentTypes": null, "arguments": [], @@ -8736,18 +9594,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 855, + "id": 886, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3787:3:2", + "referencedDeclaration": 742, + "src": "3707:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 856, + "id": 887, "isConstant": false, "isLValue": false, "isPure": false, @@ -8755,13 +9613,13 @@ "memberName": "drip", "nodeType": "MemberAccess", "referencedDeclaration": 663, - "src": "3787:8:2", + "src": "3707:8:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 857, + "id": 888, "isConstant": false, "isLValue": false, "isPure": false, @@ -8769,7 +9627,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3787:10:2", + "src": "3707:10:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8782,24 +9640,24 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3753:56:2" + "src": "3673:56:2" }, { "expression": { "argumentTypes": null, - "id": 868, + "id": 899, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 863, + "id": 894, "name": "wad", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 838, - "src": "3815:3:2", + "referencedDeclaration": 869, + "src": "3735:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8812,12 +9670,12 @@ "arguments": [ { "argumentTypes": null, - "id": 865, + "id": 896, "name": "slice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 841, - "src": "3826:5:2", + "referencedDeclaration": 872, + "src": "3746:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8825,12 +9683,12 @@ }, { "argumentTypes": null, - "id": 866, + "id": 897, "name": "chi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 848, - "src": "3833:3:2", + "referencedDeclaration": 879, + "src": "3753:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8848,18 +9706,18 @@ "typeString": "uint256" } ], - "id": 864, + "id": 895, "name": "rmul", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "3821:4:2", + "referencedDeclaration": 773, + "src": "3741:4:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) view returns (uint256)" } }, - "id": 867, + "id": 898, "isConstant": false, "isLValue": false, "isPure": false, @@ -8867,71 +9725,71 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3821:16:2", + "src": "3741:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3815:22:2", + "src": "3735:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 869, + "id": 900, "nodeType": "ExpressionStatement", - "src": "3815:22:2" + "src": "3735:22:2" } ] }, "documentation": { - "id": 831, + "id": 862, "nodeType": "StructuredDocumentation", - "src": "3465:169:2", + "src": "3385:169:2", "text": "@notice Return the accrued interest of guy on Pot\n @dev Based on Chai dai() function\n @param guy Address to check\n @return wad Accrued interest of guy" }, - "id": 871, + "id": 902, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 836, + "id": 867, "modifierName": { "argumentTypes": null, - "id": 835, + "id": 866, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "3677:13:2", + "referencedDeclaration": 4198, + "src": "3597:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3677:13:2" + "src": "3597:13:2" } ], "name": "_dai", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 834, + "id": 865, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 833, + "id": 864, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 871, - "src": "3651:11:2", + "scope": 902, + "src": "3571:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8939,10 +9797,10 @@ "typeString": "address" }, "typeName": { - "id": 832, + "id": 863, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3651:7:2", + "src": "3571:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8953,21 +9811,21 @@ "visibility": "internal" } ], - "src": "3650:13:2" + "src": "3570:13:2" }, "returnParameters": { - "id": 839, + "id": 870, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 838, + "id": 869, "mutability": "mutable", "name": "wad", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 871, - "src": "3700:11:2", + "scope": 902, + "src": "3620:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8975,10 +9833,10 @@ "typeString": "uint256" }, "typeName": { - "id": 837, + "id": 868, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3700:7:2", + "src": "3620:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8988,19 +9846,19 @@ "visibility": "internal" } ], - "src": "3699:13:2" + "src": "3619:13:2" }, - "scope": 1075, - "src": "3637:205:2", + "scope": 1106, + "src": "3557:205:2", "stateMutability": "view", "virtual": false, "visibility": "private" }, { "body": { - "id": 918, + "id": 949, "nodeType": "Block", - "src": "4094:266:2", + "src": "4014:266:2", "statements": [ { "expression": { @@ -9012,7 +9870,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 887, + "id": 918, "isConstant": false, "isLValue": false, "isPure": false, @@ -9024,18 +9882,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 883, + "id": 914, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4113:3:2", + "src": "4033:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 884, + "id": 915, "isConstant": false, "isLValue": false, "isPure": false, @@ -9043,7 +9901,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4113:10:2", + "src": "4033:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9057,18 +9915,18 @@ "typeString": "address payable" } ], - "id": 882, + "id": 913, "name": "_dai", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 871, - "src": "4108:4:2", + "referencedDeclaration": 902, + "src": "4028:4:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 885, + "id": 916, "isConstant": false, "isLValue": false, "isPure": false, @@ -9076,7 +9934,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4108:16:2", + "src": "4028:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9088,14 +9946,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 886, + "id": 917, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4128:7:2", + "src": "4048:7:2", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", @@ -9103,7 +9961,7 @@ }, "value": "1" }, - "src": "4108:27:2", + "src": "4028:27:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9112,14 +9970,14 @@ { "argumentTypes": null, "hexValue": "43616c6c657220686173206e6f7420616363727565642031206f72206d6f72652044616920696e746572657374206f6e20506f74", - "id": 888, + "id": 919, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4137:54:2", + "src": "4057:54:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_94e2bcffd09237077ab7bf5d72c9dbecf83833ba747ce44f2fb8b96ffffa64a1", @@ -9139,7 +9997,7 @@ "typeString": "literal_string \"Caller has not accrued 1 or more Dai interest on Pot\"" } ], - "id": 881, + "id": 912, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -9147,13 +10005,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4100:7:2", + "src": "4020:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 889, + "id": 920, "isConstant": false, "isLValue": false, "isPure": false, @@ -9161,21 +10019,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4100:92:2", + "src": "4020:92:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 890, + "id": 921, "nodeType": "ExpressionStatement", - "src": "4100:92:2" + "src": "4020:92:2" }, { "condition": { "argumentTypes": null, - "id": 898, + "id": 929, "isConstant": false, "isLValue": false, "isPure": false, @@ -9183,7 +10041,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4202:43:2", + "src": "4122:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -9191,18 +10049,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 895, + "id": 926, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4234:3:2", + "src": "4154:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 896, + "id": 927, "isConstant": false, "isLValue": false, "isPure": false, @@ -9210,7 +10068,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4234:10:2", + "src": "4154:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9228,26 +10086,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 891, + "id": 922, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4203:9:2", + "referencedDeclaration": 726, + "src": "4123:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 893, + "id": 924, "indexExpression": { "argumentTypes": null, - "id": 892, + "id": 923, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "4213:10:2", + "referencedDeclaration": 905, + "src": "4133:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9258,27 +10116,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4203:21:2", + "src": "4123:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 894, + "id": 925, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "4203:30:2", + "referencedDeclaration": 4016, + "src": "4123:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 897, + "id": 928, "isConstant": false, "isLValue": false, "isPure": false, @@ -9286,7 +10144,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4203:42:2", + "src": "4123:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9299,13 +10157,13 @@ } }, "falseBody": null, - "id": 910, + "id": 941, "nodeType": "IfStatement", - "src": "4198:108:2", + "src": "4118:108:2", "trueBody": { - "id": 909, + "id": 940, "nodeType": "Block", - "src": "4247:59:2", + "src": "4167:59:2", "statements": [ { "expression": { @@ -9318,18 +10176,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 904, + "id": 935, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4287:3:2", + "src": "4207:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 905, + "id": 936, "isConstant": false, "isLValue": false, "isPure": false, @@ -9337,7 +10195,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4287:10:2", + "src": "4207:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9355,26 +10213,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 900, + "id": 931, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4261:9:2", + "referencedDeclaration": 726, + "src": "4181:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 902, + "id": 933, "indexExpression": { "argumentTypes": null, - "id": 901, + "id": 932, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "4271:10:2", + "referencedDeclaration": 905, + "src": "4191:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9385,27 +10243,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4261:21:2", + "src": "4181:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 903, + "id": 934, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "4261:25:2", + "referencedDeclaration": 3970, + "src": "4181:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 906, + "id": 937, "isConstant": false, "isLValue": false, "isPure": false, @@ -9413,7 +10271,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4261:37:2", + "src": "4181:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9428,7 +10286,7 @@ "typeString": "bool" } ], - "id": 899, + "id": 930, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -9436,13 +10294,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4253:7:2", + "src": "4173:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 907, + "id": 938, "isConstant": false, "isLValue": false, "isPure": false, @@ -9450,16 +10308,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4253:46:2", + "src": "4173:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 908, + "id": 939, "nodeType": "ExpressionStatement", - "src": "4253:46:2" + "src": "4173:46:2" } ] } @@ -9472,18 +10330,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 912, + "id": 943, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4327:3:2", + "src": "4247:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 913, + "id": 944, "isConstant": false, "isLValue": false, "isPure": false, @@ -9491,7 +10349,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4327:10:2", + "src": "4247:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9505,18 +10363,18 @@ "typeString": "address payable" } ], - "id": 911, + "id": 942, "name": "PotChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 726, - "src": "4316:10:2", + "referencedDeclaration": 731, + "src": "4236:10:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 914, + "id": 945, "isConstant": false, "isLValue": false, "isPure": false, @@ -9524,29 +10382,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4316:22:2", + "src": "4236:22:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 915, + "id": 946, "nodeType": "EmitStatement", - "src": "4311:27:2" + "src": "4231:27:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 916, + "id": 947, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4351:4:2", + "src": "4271:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9554,60 +10412,60 @@ }, "value": "true" }, - "functionReturnParameters": 880, - "id": 917, + "functionReturnParameters": 911, + "id": 948, "nodeType": "Return", - "src": "4344:11:2" + "src": "4264:11:2" } ] }, "documentation": { - "id": 872, + "id": 903, "nodeType": "StructuredDocumentation", - "src": "3846:165:2", + "src": "3766:165:2", "text": "@notice Pot Challenge\n @dev Keeps track of the address of the caller if successful\n @return True if the caller successfully checked for activity on Pot" }, "functionSelector": "baf2868b", - "id": 919, + "id": 950, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 877, + "id": 908, "modifierName": { "argumentTypes": null, - "id": 876, + "id": 907, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "4065:13:2", + "referencedDeclaration": 4198, + "src": "3985:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4065:13:2" + "src": "3985:13:2" } ], "name": "potChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 875, + "id": 906, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 874, + "id": 905, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 919, - "src": "4036:18:2", + "scope": 950, + "src": "3956:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9615,10 +10473,10 @@ "typeString": "uint256" }, "typeName": { - "id": 873, + "id": 904, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4036:7:2", + "src": "3956:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9628,21 +10486,21 @@ "visibility": "internal" } ], - "src": "4035:20:2" + "src": "3955:20:2" }, "returnParameters": { - "id": 880, + "id": 911, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 879, + "id": 910, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 919, - "src": "4088:4:2", + "scope": 950, + "src": "4008:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9650,10 +10508,10 @@ "typeString": "bool" }, "typeName": { - "id": 878, + "id": 909, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4088:4:2", + "src": "4008:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9663,19 +10521,19 @@ "visibility": "internal" } ], - "src": "4087:6:2" + "src": "4007:6:2" }, - "scope": 1075, - "src": "4014:346:2", + "scope": 1106, + "src": "3934:346:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 967, + "id": 998, "nodeType": "Block", - "src": "4622:263:2", + "src": "4542:264:2", "statements": [ { "expression": { @@ -9687,7 +10545,7 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 936, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, @@ -9699,18 +10557,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 932, + "id": 963, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4648:3:2", + "src": "4568:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 933, + "id": 964, "isConstant": false, "isLValue": false, "isPure": false, @@ -9718,7 +10576,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4648:10:2", + "src": "4568:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9734,18 +10592,18 @@ ], "expression": { "argumentTypes": null, - "id": 930, + "id": 961, "name": "chief", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "4636:5:2", + "referencedDeclaration": 744, + "src": "4556:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "id": 931, + "id": 962, "isConstant": false, "isLValue": false, "isPure": false, @@ -9753,13 +10611,13 @@ "memberName": "votes", "nodeType": "MemberAccess", "referencedDeclaration": 671, - "src": "4636:11:2", + "src": "4556:11:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$", "typeString": "function (address) view external returns (bytes32)" } }, - "id": 934, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, @@ -9767,7 +10625,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4636:23:2", + "src": "4556:23:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -9779,14 +10637,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783030", - "id": 935, + "id": 966, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4663:4:2", + "src": "4583:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9794,7 +10652,7 @@ }, "value": "0x00" }, - "src": "4636:31:2", + "src": "4556:31:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9802,21 +10660,21 @@ }, { "argumentTypes": null, - "hexValue": "43616c6c6572206973206e6f7420766f74696e6720696e206120476f7665726e616e636520506f6c6c", - "id": 937, + "hexValue": "43616c6c6572206973206e6f7420766f74696e6720696e20616e20457865637574697665205370656c6c", + "id": 968, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4669:43:2", + "src": "4589:44:2", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_67b208a9b43a5545a1a8888c99a64b4cd7f58aa52580dee6f4ec112b3e80c46b", - "typeString": "literal_string \"Caller is not voting in a Governance Poll\"" + "typeIdentifier": "t_stringliteral_65880bfcd366c16deddf50d8f8606d011e26303e9f1a09e543bd3e08c12c2544", + "typeString": "literal_string \"Caller is not voting in an Executive Spell\"" }, - "value": "Caller is not voting in a Governance Poll" + "value": "Caller is not voting in an Executive Spell" } ], "expression": { @@ -9826,11 +10684,11 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_67b208a9b43a5545a1a8888c99a64b4cd7f58aa52580dee6f4ec112b3e80c46b", - "typeString": "literal_string \"Caller is not voting in a Governance Poll\"" + "typeIdentifier": "t_stringliteral_65880bfcd366c16deddf50d8f8606d011e26303e9f1a09e543bd3e08c12c2544", + "typeString": "literal_string \"Caller is not voting in an Executive Spell\"" } ], - "id": 929, + "id": 960, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -9838,13 +10696,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4628:7:2", + "src": "4548:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 938, + "id": 969, "isConstant": false, "isLValue": false, "isPure": false, @@ -9852,21 +10710,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4628:85:2", + "src": "4548:86:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 939, + "id": 970, "nodeType": "ExpressionStatement", - "src": "4628:85:2" + "src": "4548:86:2" }, { "condition": { "argumentTypes": null, - "id": 947, + "id": 978, "isConstant": false, "isLValue": false, "isPure": false, @@ -9874,7 +10732,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4723:43:2", + "src": "4644:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -9882,18 +10740,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 944, + "id": 975, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4755:3:2", + "src": "4676:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 945, + "id": 976, "isConstant": false, "isLValue": false, "isPure": false, @@ -9901,7 +10759,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4755:10:2", + "src": "4676:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9919,26 +10777,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 940, + "id": 971, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4724:9:2", + "referencedDeclaration": 726, + "src": "4645:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 942, + "id": 973, "indexExpression": { "argumentTypes": null, - "id": 941, + "id": 972, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "4734:10:2", + "referencedDeclaration": 953, + "src": "4655:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9949,27 +10807,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4724:21:2", + "src": "4645:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 943, + "id": 974, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "4724:30:2", + "referencedDeclaration": 4016, + "src": "4645:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 946, + "id": 977, "isConstant": false, "isLValue": false, "isPure": false, @@ -9977,7 +10835,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4724:42:2", + "src": "4645:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9990,13 +10848,13 @@ } }, "falseBody": null, - "id": 959, + "id": 990, "nodeType": "IfStatement", - "src": "4719:108:2", + "src": "4640:108:2", "trueBody": { - "id": 958, + "id": 989, "nodeType": "Block", - "src": "4768:59:2", + "src": "4689:59:2", "statements": [ { "expression": { @@ -10009,18 +10867,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 953, + "id": 984, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4808:3:2", + "src": "4729:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 954, + "id": 985, "isConstant": false, "isLValue": false, "isPure": false, @@ -10028,7 +10886,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4808:10:2", + "src": "4729:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10046,26 +10904,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 949, + "id": 980, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4782:9:2", + "referencedDeclaration": 726, + "src": "4703:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 951, + "id": 982, "indexExpression": { "argumentTypes": null, - "id": 950, + "id": 981, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "4792:10:2", + "referencedDeclaration": 953, + "src": "4713:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10076,27 +10934,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4782:21:2", + "src": "4703:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 952, + "id": 983, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "4782:25:2", + "referencedDeclaration": 3970, + "src": "4703:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 955, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, @@ -10104,7 +10962,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4782:37:2", + "src": "4703:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10119,7 +10977,7 @@ "typeString": "bool" } ], - "id": 948, + "id": 979, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -10127,13 +10985,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4774:7:2", + "src": "4695:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 956, + "id": 987, "isConstant": false, "isLValue": false, "isPure": false, @@ -10141,16 +10999,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4774:46:2", + "src": "4695:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 957, + "id": 988, "nodeType": "ExpressionStatement", - "src": "4774:46:2" + "src": "4695:46:2" } ] } @@ -10163,18 +11021,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 961, + "id": 992, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4852:3:2", + "src": "4773:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 962, + "id": 993, "isConstant": false, "isLValue": false, "isPure": false, @@ -10182,7 +11040,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4852:10:2", + "src": "4773:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10196,18 +11054,18 @@ "typeString": "address payable" } ], - "id": 960, + "id": 991, "name": "DSChiefChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "4837:14:2", + "referencedDeclaration": 735, + "src": "4758:14:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 963, + "id": 994, "isConstant": false, "isLValue": false, "isPure": false, @@ -10215,29 +11073,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4837:26:2", + "src": "4758:26:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 964, + "id": 995, "nodeType": "EmitStatement", - "src": "4832:31:2" + "src": "4753:31:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 965, + "id": 996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4876:4:2", + "src": "4797:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10245,60 +11103,60 @@ }, "value": "true" }, - "functionReturnParameters": 928, - "id": 966, + "functionReturnParameters": 959, + "id": 997, "nodeType": "Return", - "src": "4869:11:2" + "src": "4790:11:2" } ] }, "documentation": { - "id": 920, + "id": 951, "nodeType": "StructuredDocumentation", - "src": "4364:173:2", + "src": "4284:173:2", "text": "@notice DSChief Challenge\n @dev Keeps track of the address of the caller if successful\n @return True if the caller successfully checked for activity on DSChief" }, "functionSelector": "f36618a6", - "id": 968, + "id": 999, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 925, + "id": 956, "modifierName": { "argumentTypes": null, - "id": 924, + "id": 955, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "4593:13:2", + "referencedDeclaration": 4198, + "src": "4513:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4593:13:2" + "src": "4513:13:2" } ], "name": "chiefChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 923, + "id": 954, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 922, + "id": 953, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 968, - "src": "4564:18:2", + "scope": 999, + "src": "4484:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10306,10 +11164,10 @@ "typeString": "uint256" }, "typeName": { - "id": 921, + "id": 952, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4564:7:2", + "src": "4484:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10319,21 +11177,21 @@ "visibility": "internal" } ], - "src": "4563:20:2" + "src": "4483:20:2" }, "returnParameters": { - "id": 928, + "id": 959, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 927, + "id": 958, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 968, - "src": "4616:4:2", + "scope": 999, + "src": "4536:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10341,10 +11199,10 @@ "typeString": "bool" }, "typeName": { - "id": 926, + "id": 957, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4616:4:2", + "src": "4536:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10354,19 +11212,19 @@ "visibility": "internal" } ], - "src": "4615:6:2" + "src": "4535:6:2" }, - "scope": 1075, - "src": "4540:345:2", + "scope": 1106, + "src": "4460:346:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1019, + "id": 1050, "nodeType": "Block", - "src": "5192:299:2", + "src": "5113:299:2", "statements": [ { "expression": { @@ -10378,7 +11236,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 988, + "id": 1019, "isConstant": false, "isLValue": false, "isPure": false, @@ -10390,12 +11248,12 @@ "arguments": [ { "argumentTypes": null, - "id": 983, + "id": 1014, "name": "bidId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "5219:5:2", + "referencedDeclaration": 1004, + "src": "5140:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10411,18 +11269,18 @@ ], "expression": { "argumentTypes": null, - "id": 981, + "id": 1012, "name": "flipper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "5206:7:2", + "referencedDeclaration": 746, + "src": "5127:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" } }, - "id": 982, + "id": 1013, "isConstant": false, "isLValue": false, "isPure": false, @@ -10430,13 +11288,13 @@ "memberName": "bids", "nodeType": "MemberAccess", "referencedDeclaration": 696, - "src": "5206:12:2", + "src": "5127:12:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Bid_$689_memory_ptr_$", "typeString": "function (uint256) view external returns (struct FlipperLike.Bid memory)" } }, - "id": 984, + "id": 1015, "isConstant": false, "isLValue": false, "isPure": false, @@ -10444,14 +11302,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5206:19:2", + "src": "5127:19:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Bid_$689_memory_ptr", "typeString": "struct FlipperLike.Bid memory" } }, - "id": 985, + "id": 1016, "isConstant": false, "isLValue": true, "isPure": false, @@ -10459,7 +11317,7 @@ "memberName": "guy", "nodeType": "MemberAccess", "referencedDeclaration": 678, - "src": "5206:23:2", + "src": "5127:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10471,18 +11329,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 986, + "id": 1017, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5233:3:2", + "src": "5154:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 987, + "id": 1018, "isConstant": false, "isLValue": false, "isPure": false, @@ -10490,13 +11348,13 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5233:10:2", + "src": "5154:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "5206:37:2", + "src": "5127:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10505,14 +11363,14 @@ { "argumentTypes": null, "hexValue": "43616c6c6572206973206e6f742074686520686967682062696464657220696e207468652063757272656e742042696420696e20436f6c6c61746572616c2041756374696f6e73", - "id": 989, + "id": 1020, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5245:73:2", + "src": "5166:73:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e88b03e76bc82122d18e72f0c400e240eb0423ded12b22b77672909d807e7840", @@ -10532,7 +11390,7 @@ "typeString": "literal_string \"Caller is not the high bidder in the current Bid in Collateral Auctions\"" } ], - "id": 980, + "id": 1011, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -10540,13 +11398,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5198:7:2", + "src": "5119:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 990, + "id": 1021, "isConstant": false, "isLValue": false, "isPure": false, @@ -10554,21 +11412,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5198:121:2", + "src": "5119:121:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 991, + "id": 1022, "nodeType": "ExpressionStatement", - "src": "5198:121:2" + "src": "5119:121:2" }, { "condition": { "argumentTypes": null, - "id": 999, + "id": 1030, "isConstant": false, "isLValue": false, "isPure": false, @@ -10576,7 +11434,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5329:43:2", + "src": "5250:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -10584,18 +11442,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 996, + "id": 1027, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5361:3:2", + "src": "5282:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 997, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, @@ -10603,7 +11461,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5361:10:2", + "src": "5282:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10621,26 +11479,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 992, + "id": 1023, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5330:9:2", + "referencedDeclaration": 726, + "src": "5251:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 994, + "id": 1025, "indexExpression": { "argumentTypes": null, - "id": 993, + "id": 1024, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5340:10:2", + "referencedDeclaration": 1002, + "src": "5261:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10651,27 +11509,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5330:21:2", + "src": "5251:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 995, + "id": 1026, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "5330:30:2", + "referencedDeclaration": 4016, + "src": "5251:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 998, + "id": 1029, "isConstant": false, "isLValue": false, "isPure": false, @@ -10679,7 +11537,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5330:42:2", + "src": "5251:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10692,13 +11550,13 @@ } }, "falseBody": null, - "id": 1011, + "id": 1042, "nodeType": "IfStatement", - "src": "5325:108:2", + "src": "5246:108:2", "trueBody": { - "id": 1010, + "id": 1041, "nodeType": "Block", - "src": "5374:59:2", + "src": "5295:59:2", "statements": [ { "expression": { @@ -10711,18 +11569,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1005, + "id": 1036, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5414:3:2", + "src": "5335:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1006, + "id": 1037, "isConstant": false, "isLValue": false, "isPure": false, @@ -10730,7 +11588,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5414:10:2", + "src": "5335:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10748,26 +11606,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1001, + "id": 1032, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5388:9:2", + "referencedDeclaration": 726, + "src": "5309:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 1003, + "id": 1034, "indexExpression": { "argumentTypes": null, - "id": 1002, + "id": 1033, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5398:10:2", + "referencedDeclaration": 1002, + "src": "5319:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10778,27 +11636,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5388:21:2", + "src": "5309:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1004, + "id": 1035, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "5388:25:2", + "referencedDeclaration": 3970, + "src": "5309:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 1007, + "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, @@ -10806,7 +11664,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5388:37:2", + "src": "5309:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10821,7 +11679,7 @@ "typeString": "bool" } ], - "id": 1000, + "id": 1031, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -10829,13 +11687,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5380:7:2", + "src": "5301:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1008, + "id": 1039, "isConstant": false, "isLValue": false, "isPure": false, @@ -10843,16 +11701,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5380:46:2", + "src": "5301:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1009, + "id": 1040, "nodeType": "ExpressionStatement", - "src": "5380:46:2" + "src": "5301:46:2" } ] } @@ -10865,18 +11723,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1013, + "id": 1044, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5458:3:2", + "src": "5379:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1014, + "id": 1045, "isConstant": false, "isLValue": false, "isPure": false, @@ -10884,7 +11742,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5458:10:2", + "src": "5379:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10898,18 +11756,18 @@ "typeString": "address payable" } ], - "id": 1012, + "id": 1043, "name": "FlipperChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 734, - "src": "5443:14:2", + "referencedDeclaration": 739, + "src": "5364:14:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1015, + "id": 1046, "isConstant": false, "isLValue": false, "isPure": false, @@ -10917,29 +11775,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5443:26:2", + "src": "5364:26:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1016, + "id": 1047, "nodeType": "EmitStatement", - "src": "5438:31:2" + "src": "5359:31:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 1017, + "id": 1048, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5482:4:2", + "src": "5403:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10947,60 +11805,60 @@ }, "value": "true" }, - "functionReturnParameters": 979, - "id": 1018, + "functionReturnParameters": 1010, + "id": 1049, "nodeType": "Return", - "src": "5475:11:2" + "src": "5396:11:2" } ] }, "documentation": { - "id": 969, + "id": 1000, "nodeType": "StructuredDocumentation", - "src": "4889:201:2", + "src": "4810:201:2", "text": "@notice Flipper Challenge\n @dev Keeps track of the address of the caller if successful\n @dev guy, high bidder\n @return True if the caller successfully checked for activity on Flipper" }, "functionSelector": "9c1c94fd", - "id": 1020, + "id": 1051, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 976, + "id": 1007, "modifierName": { "argumentTypes": null, - "id": 975, + "id": 1006, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "5163:13:2", + "referencedDeclaration": 4198, + "src": "5084:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5163:13:2" + "src": "5084:13:2" } ], "name": "flipperChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 974, + "id": 1005, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 971, + "id": 1002, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5119:18:2", + "scope": 1051, + "src": "5040:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11008,10 +11866,10 @@ "typeString": "uint256" }, "typeName": { - "id": 970, + "id": 1001, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5119:7:2", + "src": "5040:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11022,13 +11880,13 @@ }, { "constant": false, - "id": 973, + "id": 1004, "mutability": "mutable", "name": "bidId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5139:13:2", + "scope": 1051, + "src": "5060:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11036,10 +11894,10 @@ "typeString": "uint256" }, "typeName": { - "id": 972, + "id": 1003, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5139:7:2", + "src": "5060:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11049,21 +11907,21 @@ "visibility": "internal" } ], - "src": "5118:35:2" + "src": "5039:35:2" }, "returnParameters": { - "id": 979, + "id": 1010, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 978, + "id": 1009, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5186:4:2", + "scope": 1051, + "src": "5107:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11071,10 +11929,10 @@ "typeString": "bool" }, "typeName": { - "id": 977, + "id": 1008, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5186:4:2", + "src": "5107:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11084,19 +11942,19 @@ "visibility": "internal" } ], - "src": "5185:6:2" + "src": "5106:6:2" }, - "scope": 1075, - "src": "5093:398:2", + "scope": 1106, + "src": "5014:398:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1039, + "id": 1070, "nodeType": "Block", - "src": "5750:53:2", + "src": "5671:53:2", "statements": [ { "expression": { @@ -11104,12 +11962,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1036, + "id": 1067, "name": "guy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "5794:3:2", + "referencedDeclaration": 1056, + "src": "5715:3:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11127,26 +11985,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1032, + "id": 1063, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5763:9:2", + "referencedDeclaration": 726, + "src": "5684:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 1034, + "id": 1065, "indexExpression": { "argumentTypes": null, - "id": 1033, + "id": 1064, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "5773:10:2", + "referencedDeclaration": 1054, + "src": "5694:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11157,27 +12015,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5763:21:2", + "src": "5684:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1035, + "id": 1066, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "5763:30:2", + "referencedDeclaration": 4016, + "src": "5684:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 1037, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, @@ -11185,67 +12043,67 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5763:35:2", + "src": "5684:35:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1031, - "id": 1038, + "functionReturnParameters": 1062, + "id": 1069, "nodeType": "Return", - "src": "5756:42:2" + "src": "5677:42:2" } ] }, "documentation": { - "id": 1021, + "id": 1052, "nodeType": "StructuredDocumentation", - "src": "5495:160:2", + "src": "5416:160:2", "text": "@notice Check if guy is a redeemer\n @dev Verify if the address of guy exists\n @param guy Address to verify\n @return True if guy is a redeemer" }, "functionSelector": "ebfa62b9", - "id": 1040, + "id": 1071, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1028, + "id": 1059, "modifierName": { "argumentTypes": null, - "id": 1027, + "id": 1058, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "5721:13:2", + "referencedDeclaration": 4198, + "src": "5642:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5721:13:2" + "src": "5642:13:2" } ], "name": "verify", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1026, + "id": 1057, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1023, + "id": 1054, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5674:18:2", + "scope": 1071, + "src": "5595:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11253,10 +12111,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1022, + "id": 1053, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5674:7:2", + "src": "5595:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11267,13 +12125,13 @@ }, { "constant": false, - "id": 1025, + "id": 1056, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5694:11:2", + "scope": 1071, + "src": "5615:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11281,10 +12139,10 @@ "typeString": "address" }, "typeName": { - "id": 1024, + "id": 1055, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5694:7:2", + "src": "5615:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11295,21 +12153,21 @@ "visibility": "internal" } ], - "src": "5673:33:2" + "src": "5594:33:2" }, "returnParameters": { - "id": 1031, + "id": 1062, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1030, + "id": 1061, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5744:4:2", + "scope": 1071, + "src": "5665:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11317,10 +12175,10 @@ "typeString": "bool" }, "typeName": { - "id": 1029, + "id": 1060, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5744:4:2", + "src": "5665:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11330,19 +12188,19 @@ "visibility": "internal" } ], - "src": "5743:6:2" + "src": "5664:6:2" }, - "scope": 1075, - "src": "5658:145:2", + "scope": 1106, + "src": "5579:145:2", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 1056, + "id": 1087, "nodeType": "Block", - "src": "5921:113:2", + "src": "5842:113:2", "statements": [ { "expression": { @@ -11353,12 +12211,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1046, + "id": 1077, "name": "PAUSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, - "src": "5943:11:2", + "referencedDeclaration": 719, + "src": "5864:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11368,18 +12226,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1047, + "id": 1078, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5956:3:2", + "src": "5877:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1048, + "id": 1079, "isConstant": false, "isLValue": false, "isPure": false, @@ -11387,7 +12245,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5956:10:2", + "src": "5877:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11405,18 +12263,18 @@ "typeString": "address payable" } ], - "id": 1045, + "id": 1076, "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, - "src": "5935:7:2", + "referencedDeclaration": 1238, + "src": "5856:7:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) view returns (bool)" } }, - "id": 1049, + "id": 1080, "isConstant": false, "isLValue": false, "isPure": false, @@ -11424,7 +12282,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5935:32:2", + "src": "5856:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11434,14 +12292,14 @@ { "argumentTypes": null, "hexValue": "4d616b65724261646765733a206d75737420686176652070617573657220726f6c6520746f207061757365", - "id": 1050, + "id": 1081, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5969:45:2", + "src": "5890:45:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d33b68c439b8482d10dd00f9785755fa4ae9979ec8a8ee9bf8b872747d1b8f67", @@ -11461,7 +12319,7 @@ "typeString": "literal_string \"MakerBadges: must have pauser role to pause\"" } ], - "id": 1044, + "id": 1075, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11469,13 +12327,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5927:7:2", + "src": "5848:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1051, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, @@ -11483,16 +12341,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5927:88:2", + "src": "5848:88:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1052, + "id": 1083, "nodeType": "ExpressionStatement", - "src": "5927:88:2" + "src": "5848:88:2" }, { "expression": { @@ -11500,18 +12358,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1053, + "id": 1084, "name": "_pause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4193, - "src": "6021:6:2", + "referencedDeclaration": 4224, + "src": "5942:6:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1054, + "id": 1085, "isConstant": false, "isLValue": false, "isPure": false, @@ -11519,27 +12377,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6021:8:2", + "src": "5942:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1055, + "id": 1086, "nodeType": "ExpressionStatement", - "src": "6021:8:2" + "src": "5942:8:2" } ] }, "documentation": { - "id": 1041, + "id": 1072, "nodeType": "StructuredDocumentation", - "src": "5807:85:2", + "src": "5728:85:2", "text": "@notice Pause all the functions\n @dev the caller must have the 'PAUSER_ROLE'" }, "functionSelector": "8456cb59", - "id": 1057, + "id": 1088, "implemented": true, "kind": "function", "modifiers": [], @@ -11547,28 +12405,28 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1042, + "id": 1073, "nodeType": "ParameterList", "parameters": [], - "src": "5909:2:2" + "src": "5830:2:2" }, "returnParameters": { - "id": 1043, + "id": 1074, "nodeType": "ParameterList", "parameters": [], - "src": "5921:0:2" + "src": "5842:0:2" }, - "scope": 1075, - "src": "5895:139:2", + "scope": 1106, + "src": "5816:139:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1073, + "id": 1104, "nodeType": "Block", - "src": "6156:127:2", + "src": "6077:127:2", "statements": [ { "expression": { @@ -11579,12 +12437,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1063, + "id": 1094, "name": "PAUSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, - "src": "6182:11:2", + "referencedDeclaration": 719, + "src": "6103:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11594,18 +12452,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1064, + "id": 1095, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "6195:3:2", + "src": "6116:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1065, + "id": 1096, "isConstant": false, "isLValue": false, "isPure": false, @@ -11613,7 +12471,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6195:10:2", + "src": "6116:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11631,18 +12489,18 @@ "typeString": "address payable" } ], - "id": 1062, + "id": 1093, "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, - "src": "6174:7:2", + "referencedDeclaration": 1238, + "src": "6095:7:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) view returns (bool)" } }, - "id": 1066, + "id": 1097, "isConstant": false, "isLValue": false, "isPure": false, @@ -11650,7 +12508,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6174:32:2", + "src": "6095:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11660,14 +12518,14 @@ { "argumentTypes": null, "hexValue": "4d616b65724261646765733a206d75737420686176652070617573657220726f6c6520746f20756e7061757365", - "id": 1067, + "id": 1098, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6208:47:2", + "src": "6129:47:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e81d67bdac033cbd58eea8cc6d19c5b2672fe1faa73f3d7c71703b8e96106b7b", @@ -11687,7 +12545,7 @@ "typeString": "literal_string \"MakerBadges: must have pauser role to unpause\"" } ], - "id": 1061, + "id": 1092, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11695,13 +12553,13 @@ -18 ], "referencedDeclaration": -18, - "src": "6166:7:2", + "src": "6087:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1068, + "id": 1099, "isConstant": false, "isLValue": false, "isPure": false, @@ -11709,16 +12567,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6166:90:2", + "src": "6087:90:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1069, + "id": 1100, "nodeType": "ExpressionStatement", - "src": "6166:90:2" + "src": "6087:90:2" }, { "expression": { @@ -11726,18 +12584,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1070, + "id": 1101, "name": "_unpause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4209, - "src": "6266:8:2", + "referencedDeclaration": 4240, + "src": "6187:8:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1071, + "id": 1102, "isConstant": false, "isLValue": false, "isPure": false, @@ -11745,27 +12603,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6266:10:2", + "src": "6187:10:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1072, + "id": 1103, "nodeType": "ExpressionStatement", - "src": "6266:10:2" + "src": "6187:10:2" } ] }, "documentation": { - "id": 1058, + "id": 1089, "nodeType": "StructuredDocumentation", - "src": "6038:87:2", + "src": "5959:87:2", "text": "@notice Unpause all the functions\n @dev the caller must have the 'PAUSER_ROLE'" }, "functionSelector": "3f4ba83a", - "id": 1074, + "id": 1105, "implemented": true, "kind": "function", "modifiers": [], @@ -11773,41 +12631,45 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1059, + "id": 1090, "nodeType": "ParameterList", "parameters": [], - "src": "6144:2:2" + "src": "6065:2:2" }, "returnParameters": { - "id": 1060, + "id": 1091, "nodeType": "ParameterList", "parameters": [], - "src": "6156:0:2" + "src": "6077:0:2" }, - "scope": 1075, - "src": "6128:155:2", + "scope": 1106, + "src": "6049:155:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 1076, - "src": "1381:4905:2" + "scope": 1107, + "src": "1381:4826:2" } ], - "src": "37:6250:2" + "src": "37:6171:2" }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:05.903Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.596Z", "devdoc": { - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/IERC165.json b/abi/IERC165.json index 95ebd13..3fcfb8d 100644 --- a/abi/IERC165.json +++ b/abi/IERC165.json @@ -21,7 +21,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xfa152b6e88a1dc50780e8f1580426dc23ad2e1e2c2f086a088adf206a202f453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5127b264994adab88fae419b1c493efc5acd07134c19ee5c0397e50018291ebf\",\"dweb:/ipfs/QmWwJZVhvdmvUCdimbb6R2Jiu59zjPqm6XTMchM6LaEHAp\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xfa152b6e88a1dc50780e8f1580426dc23ad2e1e2c2f086a088adf206a202f453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5127b264994adab88fae419b1c493efc5acd07134c19ee5c0397e50018291ebf\",\"dweb:/ipfs/QmWwJZVhvdmvUCdimbb6R2Jiu59zjPqm6XTMchM6LaEHAp\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, @@ -33,15 +33,15 @@ "absolutePath": "@openzeppelin/contracts/introspection/IERC165.sol", "exportedSymbols": { "IERC165": [ - 1667 + 1698 ] }, - "id": 1668, + "id": 1699, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1657, + "id": 1688, "literals": [ "solidity", "^", @@ -57,15 +57,15 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 1658, + "id": 1689, "nodeType": "StructuredDocumentation", "src": "58:279:9", "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." }, "fullyImplemented": false, - "id": 1667, + "id": 1698, "linearizedBaseContracts": [ - 1667 + 1698 ], "name": "IERC165", "nodeType": "ContractDefinition", @@ -73,13 +73,13 @@ { "body": null, "documentation": { - "id": 1659, + "id": 1690, "nodeType": "StructuredDocumentation", "src": "362:340:9", "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." }, "functionSelector": "01ffc9a7", - "id": 1666, + "id": 1697, "implemented": false, "kind": "function", "modifiers": [], @@ -87,17 +87,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1662, + "id": 1693, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1661, + "id": 1692, "mutability": "mutable", "name": "interfaceId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1666, + "scope": 1697, "src": "734:18:9", "stateVariable": false, "storageLocation": "default", @@ -106,7 +106,7 @@ "typeString": "bytes4" }, "typeName": { - "id": 1660, + "id": 1691, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "734:6:9", @@ -122,17 +122,17 @@ "src": "733:20:9" }, "returnParameters": { - "id": 1665, + "id": 1696, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1664, + "id": 1695, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1666, + "scope": 1697, "src": "777:4:9", "stateVariable": false, "storageLocation": "default", @@ -141,7 +141,7 @@ "typeString": "bool" }, "typeName": { - "id": 1663, + "id": 1694, "name": "bool", "nodeType": "ElementaryTypeName", "src": "777:4:9", @@ -156,14 +156,14 @@ ], "src": "776:6:9" }, - "scope": 1667, + "scope": 1698, "src": "707:76:9", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 1668, + "scope": 1699, "src": "338:447:9" } ], @@ -173,15 +173,15 @@ "absolutePath": "@openzeppelin/contracts/introspection/IERC165.sol", "exportedSymbols": { "IERC165": [ - 1667 + 1698 ] }, - "id": 1668, + "id": 1699, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1657, + "id": 1688, "literals": [ "solidity", "^", @@ -197,15 +197,15 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 1658, + "id": 1689, "nodeType": "StructuredDocumentation", "src": "58:279:9", "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." }, "fullyImplemented": false, - "id": 1667, + "id": 1698, "linearizedBaseContracts": [ - 1667 + 1698 ], "name": "IERC165", "nodeType": "ContractDefinition", @@ -213,13 +213,13 @@ { "body": null, "documentation": { - "id": 1659, + "id": 1690, "nodeType": "StructuredDocumentation", "src": "362:340:9", "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." }, "functionSelector": "01ffc9a7", - "id": 1666, + "id": 1697, "implemented": false, "kind": "function", "modifiers": [], @@ -227,17 +227,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1662, + "id": 1693, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1661, + "id": 1692, "mutability": "mutable", "name": "interfaceId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1666, + "scope": 1697, "src": "734:18:9", "stateVariable": false, "storageLocation": "default", @@ -246,7 +246,7 @@ "typeString": "bytes4" }, "typeName": { - "id": 1660, + "id": 1691, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "734:6:9", @@ -262,17 +262,17 @@ "src": "733:20:9" }, "returnParameters": { - "id": 1665, + "id": 1696, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1664, + "id": 1695, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1666, + "scope": 1697, "src": "777:4:9", "stateVariable": false, "storageLocation": "default", @@ -281,7 +281,7 @@ "typeString": "bool" }, "typeName": { - "id": 1663, + "id": 1694, "name": "bool", "nodeType": "ElementaryTypeName", "src": "777:4:9", @@ -296,14 +296,14 @@ ], "src": "776:6:9" }, - "scope": 1667, + "scope": 1698, "src": "707:76:9", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 1668, + "scope": 1699, "src": "338:447:9" } ], @@ -311,20 +311,24 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:05.970Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.661Z", "devdoc": { "details": "Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.", + "kind": "dev", "methods": { "supportsInterface(bytes4)": { "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas." } - } + }, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/IERC721.json b/abi/IERC721.json index 59ba01e..07138c3 100644 --- a/abi/IERC721.json +++ b/abi/IERC721.json @@ -287,7 +287,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xfa152b6e88a1dc50780e8f1580426dc23ad2e1e2c2f086a088adf206a202f453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5127b264994adab88fae419b1c493efc5acd07134c19ee5c0397e50018291ebf\",\"dweb:/ipfs/QmWwJZVhvdmvUCdimbb6R2Jiu59zjPqm6XTMchM6LaEHAp\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x227bafd3e165b13f5d98c42a44376e48d41f4a265db8803f2707faaeae9659aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9aa7959a30871669ce46172cd117b084b607d602d9ce695ce79005582b0b69b\",\"dweb:/ipfs/QmXZUWeLXmArQinHL4RnacJLT22GvCExqREYM6pHLX7CX9\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transfered from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xfa152b6e88a1dc50780e8f1580426dc23ad2e1e2c2f086a088adf206a202f453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5127b264994adab88fae419b1c493efc5acd07134c19ee5c0397e50018291ebf\",\"dweb:/ipfs/QmWwJZVhvdmvUCdimbb6R2Jiu59zjPqm6XTMchM6LaEHAp\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x227bafd3e165b13f5d98c42a44376e48d41f4a265db8803f2707faaeae9659aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9aa7959a30871669ce46172cd117b084b607d602d9ce695ce79005582b0b69b\",\"dweb:/ipfs/QmXZUWeLXmArQinHL4RnacJLT22GvCExqREYM6pHLX7CX9\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, @@ -299,15 +299,15 @@ "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", "exportedSymbols": { "IERC721": [ - 2940 + 2971 ] }, - "id": 2941, + "id": 2972, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2826, + "id": 2857, "literals": [ "solidity", "^", @@ -320,10 +320,10 @@ { "absolutePath": "@openzeppelin/contracts/introspection/IERC165.sol", "file": "../../introspection/IERC165.sol", - "id": 2827, + "id": 2858, "nodeType": "ImportDirective", - "scope": 2941, - "sourceUnit": 1668, + "scope": 2972, + "sourceUnit": 1699, "src": "58:41:13", "symbolAliases": [], "unitAlias": "" @@ -335,36 +335,36 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2829, + "id": 2860, "name": "IERC165", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1667, + "referencedDeclaration": 1698, "src": "190:7:13", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$1667", + "typeIdentifier": "t_contract$_IERC165_$1698", "typeString": "contract IERC165" } }, - "id": 2830, + "id": 2861, "nodeType": "InheritanceSpecifier", "src": "190:7:13" } ], "contractDependencies": [ - 1667 + 1698 ], "contractKind": "interface", "documentation": { - "id": 2828, + "id": 2859, "nodeType": "StructuredDocumentation", "src": "101:67:13", "text": " @dev Required interface of an ERC721 compliant contract." }, "fullyImplemented": false, - "id": 2940, + "id": 2971, "linearizedBaseContracts": [ - 2940, - 1667 + 2971, + 1698 ], "name": "IERC721", "nodeType": "ContractDefinition", @@ -372,27 +372,27 @@ { "anonymous": false, "documentation": { - "id": 2831, + "id": 2862, "nodeType": "StructuredDocumentation", "src": "204:87:13", "text": " @dev Emitted when `tokenId` token is transfered from `from` to `to`." }, - "id": 2839, + "id": 2870, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 2838, + "id": 2869, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2833, + "id": 2864, "indexed": true, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2839, + "scope": 2870, "src": "311:20:13", "stateVariable": false, "storageLocation": "default", @@ -401,7 +401,7 @@ "typeString": "address" }, "typeName": { - "id": 2832, + "id": 2863, "name": "address", "nodeType": "ElementaryTypeName", "src": "311:7:13", @@ -416,13 +416,13 @@ }, { "constant": false, - "id": 2835, + "id": 2866, "indexed": true, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2839, + "scope": 2870, "src": "333:18:13", "stateVariable": false, "storageLocation": "default", @@ -431,7 +431,7 @@ "typeString": "address" }, "typeName": { - "id": 2834, + "id": 2865, "name": "address", "nodeType": "ElementaryTypeName", "src": "333:7:13", @@ -446,13 +446,13 @@ }, { "constant": false, - "id": 2837, + "id": 2868, "indexed": true, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2839, + "scope": 2870, "src": "353:23:13", "stateVariable": false, "storageLocation": "default", @@ -461,7 +461,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2836, + "id": 2867, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "353:7:13", @@ -481,27 +481,27 @@ { "anonymous": false, "documentation": { - "id": 2840, + "id": 2871, "nodeType": "StructuredDocumentation", "src": "384:94:13", "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." }, - "id": 2848, + "id": 2879, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 2847, + "id": 2878, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2842, + "id": 2873, "indexed": true, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2848, + "scope": 2879, "src": "498:21:13", "stateVariable": false, "storageLocation": "default", @@ -510,7 +510,7 @@ "typeString": "address" }, "typeName": { - "id": 2841, + "id": 2872, "name": "address", "nodeType": "ElementaryTypeName", "src": "498:7:13", @@ -525,13 +525,13 @@ }, { "constant": false, - "id": 2844, + "id": 2875, "indexed": true, "mutability": "mutable", "name": "approved", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2848, + "scope": 2879, "src": "521:24:13", "stateVariable": false, "storageLocation": "default", @@ -540,7 +540,7 @@ "typeString": "address" }, "typeName": { - "id": 2843, + "id": 2874, "name": "address", "nodeType": "ElementaryTypeName", "src": "521:7:13", @@ -555,13 +555,13 @@ }, { "constant": false, - "id": 2846, + "id": 2877, "indexed": true, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2848, + "scope": 2879, "src": "547:23:13", "stateVariable": false, "storageLocation": "default", @@ -570,7 +570,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2845, + "id": 2876, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "547:7:13", @@ -590,27 +590,27 @@ { "anonymous": false, "documentation": { - "id": 2849, + "id": 2880, "nodeType": "StructuredDocumentation", "src": "578:117:13", "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." }, - "id": 2857, + "id": 2888, "name": "ApprovalForAll", "nodeType": "EventDefinition", "parameters": { - "id": 2856, + "id": 2887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2851, + "id": 2882, "indexed": true, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2857, + "scope": 2888, "src": "721:21:13", "stateVariable": false, "storageLocation": "default", @@ -619,7 +619,7 @@ "typeString": "address" }, "typeName": { - "id": 2850, + "id": 2881, "name": "address", "nodeType": "ElementaryTypeName", "src": "721:7:13", @@ -634,13 +634,13 @@ }, { "constant": false, - "id": 2853, + "id": 2884, "indexed": true, "mutability": "mutable", "name": "operator", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2857, + "scope": 2888, "src": "744:24:13", "stateVariable": false, "storageLocation": "default", @@ -649,7 +649,7 @@ "typeString": "address" }, "typeName": { - "id": 2852, + "id": 2883, "name": "address", "nodeType": "ElementaryTypeName", "src": "744:7:13", @@ -664,13 +664,13 @@ }, { "constant": false, - "id": 2855, + "id": 2886, "indexed": false, "mutability": "mutable", "name": "approved", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2857, + "scope": 2888, "src": "770:13:13", "stateVariable": false, "storageLocation": "default", @@ -679,7 +679,7 @@ "typeString": "bool" }, "typeName": { - "id": 2854, + "id": 2885, "name": "bool", "nodeType": "ElementaryTypeName", "src": "770:4:13", @@ -699,13 +699,13 @@ { "body": null, "documentation": { - "id": 2858, + "id": 2889, "nodeType": "StructuredDocumentation", "src": "791:76:13", "text": " @dev Returns the number of tokens in ``owner``'s account." }, "functionSelector": "70a08231", - "id": 2865, + "id": 2896, "implemented": false, "kind": "function", "modifiers": [], @@ -713,17 +713,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2861, + "id": 2892, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2860, + "id": 2891, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2865, + "scope": 2896, "src": "891:13:13", "stateVariable": false, "storageLocation": "default", @@ -732,7 +732,7 @@ "typeString": "address" }, "typeName": { - "id": 2859, + "id": 2890, "name": "address", "nodeType": "ElementaryTypeName", "src": "891:7:13", @@ -749,17 +749,17 @@ "src": "890:15:13" }, "returnParameters": { - "id": 2864, + "id": 2895, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2863, + "id": 2894, "mutability": "mutable", "name": "balance", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2865, + "scope": 2896, "src": "929:15:13", "stateVariable": false, "storageLocation": "default", @@ -768,7 +768,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2862, + "id": 2893, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "929:7:13", @@ -783,7 +783,7 @@ ], "src": "928:17:13" }, - "scope": 2940, + "scope": 2971, "src": "872:74:13", "stateMutability": "view", "virtual": false, @@ -792,13 +792,13 @@ { "body": null, "documentation": { - "id": 2866, + "id": 2897, "nodeType": "StructuredDocumentation", "src": "952:131:13", "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." }, "functionSelector": "6352211e", - "id": 2873, + "id": 2904, "implemented": false, "kind": "function", "modifiers": [], @@ -806,17 +806,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2869, + "id": 2900, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2868, + "id": 2899, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2873, + "scope": 2904, "src": "1105:15:13", "stateVariable": false, "storageLocation": "default", @@ -825,7 +825,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2867, + "id": 2898, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1105:7:13", @@ -841,17 +841,17 @@ "src": "1104:17:13" }, "returnParameters": { - "id": 2872, + "id": 2903, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2871, + "id": 2902, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2873, + "scope": 2904, "src": "1145:13:13", "stateVariable": false, "storageLocation": "default", @@ -860,7 +860,7 @@ "typeString": "address" }, "typeName": { - "id": 2870, + "id": 2901, "name": "address", "nodeType": "ElementaryTypeName", "src": "1145:7:13", @@ -876,7 +876,7 @@ ], "src": "1144:15:13" }, - "scope": 2940, + "scope": 2971, "src": "1088:72:13", "stateMutability": "view", "virtual": false, @@ -885,13 +885,13 @@ { "body": null, "documentation": { - "id": 2874, + "id": 2905, "nodeType": "StructuredDocumentation", "src": "1166:690:13", "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." }, "functionSelector": "42842e0e", - "id": 2883, + "id": 2914, "implemented": false, "kind": "function", "modifiers": [], @@ -899,17 +899,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2881, + "id": 2912, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2876, + "id": 2907, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2883, + "scope": 2914, "src": "1887:12:13", "stateVariable": false, "storageLocation": "default", @@ -918,7 +918,7 @@ "typeString": "address" }, "typeName": { - "id": 2875, + "id": 2906, "name": "address", "nodeType": "ElementaryTypeName", "src": "1887:7:13", @@ -933,12 +933,12 @@ }, { "constant": false, - "id": 2878, + "id": 2909, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2883, + "scope": 2914, "src": "1901:10:13", "stateVariable": false, "storageLocation": "default", @@ -947,7 +947,7 @@ "typeString": "address" }, "typeName": { - "id": 2877, + "id": 2908, "name": "address", "nodeType": "ElementaryTypeName", "src": "1901:7:13", @@ -962,12 +962,12 @@ }, { "constant": false, - "id": 2880, + "id": 2911, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2883, + "scope": 2914, "src": "1913:15:13", "stateVariable": false, "storageLocation": "default", @@ -976,7 +976,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2879, + "id": 2910, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1913:7:13", @@ -992,12 +992,12 @@ "src": "1886:43:13" }, "returnParameters": { - "id": 2882, + "id": 2913, "nodeType": "ParameterList", "parameters": [], "src": "1938:0:13" }, - "scope": 2940, + "scope": 2971, "src": "1861:78:13", "stateMutability": "nonpayable", "virtual": false, @@ -1006,13 +1006,13 @@ { "body": null, "documentation": { - "id": 2884, + "id": 2915, "nodeType": "StructuredDocumentation", "src": "1945:504:13", "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." }, "functionSelector": "23b872dd", - "id": 2893, + "id": 2924, "implemented": false, "kind": "function", "modifiers": [], @@ -1020,17 +1020,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2891, + "id": 2922, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2886, + "id": 2917, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2893, + "scope": 2924, "src": "2476:12:13", "stateVariable": false, "storageLocation": "default", @@ -1039,7 +1039,7 @@ "typeString": "address" }, "typeName": { - "id": 2885, + "id": 2916, "name": "address", "nodeType": "ElementaryTypeName", "src": "2476:7:13", @@ -1054,12 +1054,12 @@ }, { "constant": false, - "id": 2888, + "id": 2919, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2893, + "scope": 2924, "src": "2490:10:13", "stateVariable": false, "storageLocation": "default", @@ -1068,7 +1068,7 @@ "typeString": "address" }, "typeName": { - "id": 2887, + "id": 2918, "name": "address", "nodeType": "ElementaryTypeName", "src": "2490:7:13", @@ -1083,12 +1083,12 @@ }, { "constant": false, - "id": 2890, + "id": 2921, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2893, + "scope": 2924, "src": "2502:15:13", "stateVariable": false, "storageLocation": "default", @@ -1097,7 +1097,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2889, + "id": 2920, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2502:7:13", @@ -1113,12 +1113,12 @@ "src": "2475:43:13" }, "returnParameters": { - "id": 2892, + "id": 2923, "nodeType": "ParameterList", "parameters": [], "src": "2527:0:13" }, - "scope": 2940, + "scope": 2971, "src": "2454:74:13", "stateMutability": "nonpayable", "virtual": false, @@ -1127,13 +1127,13 @@ { "body": null, "documentation": { - "id": 2894, + "id": 2925, "nodeType": "StructuredDocumentation", "src": "2534:452:13", "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." }, "functionSelector": "095ea7b3", - "id": 2901, + "id": 2932, "implemented": false, "kind": "function", "modifiers": [], @@ -1141,17 +1141,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2899, + "id": 2930, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2896, + "id": 2927, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2901, + "scope": 2932, "src": "3008:10:13", "stateVariable": false, "storageLocation": "default", @@ -1160,7 +1160,7 @@ "typeString": "address" }, "typeName": { - "id": 2895, + "id": 2926, "name": "address", "nodeType": "ElementaryTypeName", "src": "3008:7:13", @@ -1175,12 +1175,12 @@ }, { "constant": false, - "id": 2898, + "id": 2929, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2901, + "scope": 2932, "src": "3020:15:13", "stateVariable": false, "storageLocation": "default", @@ -1189,7 +1189,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2897, + "id": 2928, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3020:7:13", @@ -1205,12 +1205,12 @@ "src": "3007:29:13" }, "returnParameters": { - "id": 2900, + "id": 2931, "nodeType": "ParameterList", "parameters": [], "src": "3045:0:13" }, - "scope": 2940, + "scope": 2971, "src": "2991:55:13", "stateMutability": "nonpayable", "virtual": false, @@ -1219,13 +1219,13 @@ { "body": null, "documentation": { - "id": 2902, + "id": 2933, "nodeType": "StructuredDocumentation", "src": "3052:139:13", "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." }, "functionSelector": "081812fc", - "id": 2909, + "id": 2940, "implemented": false, "kind": "function", "modifiers": [], @@ -1233,17 +1233,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2905, + "id": 2936, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2904, + "id": 2935, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2909, + "scope": 2940, "src": "3217:15:13", "stateVariable": false, "storageLocation": "default", @@ -1252,7 +1252,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2903, + "id": 2934, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3217:7:13", @@ -1268,17 +1268,17 @@ "src": "3216:17:13" }, "returnParameters": { - "id": 2908, + "id": 2939, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2907, + "id": 2938, "mutability": "mutable", "name": "operator", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2909, + "scope": 2940, "src": "3257:16:13", "stateVariable": false, "storageLocation": "default", @@ -1287,7 +1287,7 @@ "typeString": "address" }, "typeName": { - "id": 2906, + "id": 2937, "name": "address", "nodeType": "ElementaryTypeName", "src": "3257:7:13", @@ -1303,7 +1303,7 @@ ], "src": "3256:18:13" }, - "scope": 2940, + "scope": 2971, "src": "3196:79:13", "stateMutability": "view", "virtual": false, @@ -1312,13 +1312,13 @@ { "body": null, "documentation": { - "id": 2910, + "id": 2941, "nodeType": "StructuredDocumentation", "src": "3281:309:13", "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." }, "functionSelector": "a22cb465", - "id": 2917, + "id": 2948, "implemented": false, "kind": "function", "modifiers": [], @@ -1326,17 +1326,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2915, + "id": 2946, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2912, + "id": 2943, "mutability": "mutable", "name": "operator", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2917, + "scope": 2948, "src": "3622:16:13", "stateVariable": false, "storageLocation": "default", @@ -1345,7 +1345,7 @@ "typeString": "address" }, "typeName": { - "id": 2911, + "id": 2942, "name": "address", "nodeType": "ElementaryTypeName", "src": "3622:7:13", @@ -1360,12 +1360,12 @@ }, { "constant": false, - "id": 2914, + "id": 2945, "mutability": "mutable", "name": "_approved", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2917, + "scope": 2948, "src": "3640:14:13", "stateVariable": false, "storageLocation": "default", @@ -1374,7 +1374,7 @@ "typeString": "bool" }, "typeName": { - "id": 2913, + "id": 2944, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3640:4:13", @@ -1390,12 +1390,12 @@ "src": "3621:34:13" }, "returnParameters": { - "id": 2916, + "id": 2947, "nodeType": "ParameterList", "parameters": [], "src": "3664:0:13" }, - "scope": 2940, + "scope": 2971, "src": "3595:70:13", "stateMutability": "nonpayable", "virtual": false, @@ -1404,13 +1404,13 @@ { "body": null, "documentation": { - "id": 2918, + "id": 2949, "nodeType": "StructuredDocumentation", "src": "3671:138:13", "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" }, "functionSelector": "e985e9c5", - "id": 2927, + "id": 2958, "implemented": false, "kind": "function", "modifiers": [], @@ -1418,17 +1418,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2923, + "id": 2954, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2920, + "id": 2951, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2927, + "scope": 2958, "src": "3840:13:13", "stateVariable": false, "storageLocation": "default", @@ -1437,7 +1437,7 @@ "typeString": "address" }, "typeName": { - "id": 2919, + "id": 2950, "name": "address", "nodeType": "ElementaryTypeName", "src": "3840:7:13", @@ -1452,12 +1452,12 @@ }, { "constant": false, - "id": 2922, + "id": 2953, "mutability": "mutable", "name": "operator", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2927, + "scope": 2958, "src": "3855:16:13", "stateVariable": false, "storageLocation": "default", @@ -1466,7 +1466,7 @@ "typeString": "address" }, "typeName": { - "id": 2921, + "id": 2952, "name": "address", "nodeType": "ElementaryTypeName", "src": "3855:7:13", @@ -1483,17 +1483,17 @@ "src": "3839:33:13" }, "returnParameters": { - "id": 2926, + "id": 2957, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2925, + "id": 2956, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2927, + "scope": 2958, "src": "3896:4:13", "stateVariable": false, "storageLocation": "default", @@ -1502,7 +1502,7 @@ "typeString": "bool" }, "typeName": { - "id": 2924, + "id": 2955, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3896:4:13", @@ -1517,7 +1517,7 @@ ], "src": "3895:6:13" }, - "scope": 2940, + "scope": 2971, "src": "3814:88:13", "stateMutability": "view", "virtual": false, @@ -1526,13 +1526,13 @@ { "body": null, "documentation": { - "id": 2928, + "id": 2959, "nodeType": "StructuredDocumentation", "src": "3908:566:13", "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." }, "functionSelector": "b88d4fde", - "id": 2939, + "id": 2970, "implemented": false, "kind": "function", "modifiers": [], @@ -1540,17 +1540,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2937, + "id": 2968, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2930, + "id": 2961, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2939, + "scope": 2970, "src": "4505:12:13", "stateVariable": false, "storageLocation": "default", @@ -1559,7 +1559,7 @@ "typeString": "address" }, "typeName": { - "id": 2929, + "id": 2960, "name": "address", "nodeType": "ElementaryTypeName", "src": "4505:7:13", @@ -1574,12 +1574,12 @@ }, { "constant": false, - "id": 2932, + "id": 2963, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2939, + "scope": 2970, "src": "4519:10:13", "stateVariable": false, "storageLocation": "default", @@ -1588,7 +1588,7 @@ "typeString": "address" }, "typeName": { - "id": 2931, + "id": 2962, "name": "address", "nodeType": "ElementaryTypeName", "src": "4519:7:13", @@ -1603,12 +1603,12 @@ }, { "constant": false, - "id": 2934, + "id": 2965, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2939, + "scope": 2970, "src": "4531:15:13", "stateVariable": false, "storageLocation": "default", @@ -1617,7 +1617,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2933, + "id": 2964, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4531:7:13", @@ -1631,12 +1631,12 @@ }, { "constant": false, - "id": 2936, + "id": 2967, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2939, + "scope": 2970, "src": "4548:19:13", "stateVariable": false, "storageLocation": "calldata", @@ -1645,7 +1645,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2935, + "id": 2966, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4548:5:13", @@ -1661,19 +1661,19 @@ "src": "4504:64:13" }, "returnParameters": { - "id": 2938, + "id": 2969, "nodeType": "ParameterList", "parameters": [], "src": "4577:0:13" }, - "scope": 2940, + "scope": 2971, "src": "4479:99:13", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 2941, + "scope": 2972, "src": "169:4411:13" } ], @@ -1683,15 +1683,15 @@ "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", "exportedSymbols": { "IERC721": [ - 2940 + 2971 ] }, - "id": 2941, + "id": 2972, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2826, + "id": 2857, "literals": [ "solidity", "^", @@ -1704,10 +1704,10 @@ { "absolutePath": "@openzeppelin/contracts/introspection/IERC165.sol", "file": "../../introspection/IERC165.sol", - "id": 2827, + "id": 2858, "nodeType": "ImportDirective", - "scope": 2941, - "sourceUnit": 1668, + "scope": 2972, + "sourceUnit": 1699, "src": "58:41:13", "symbolAliases": [], "unitAlias": "" @@ -1719,36 +1719,36 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2829, + "id": 2860, "name": "IERC165", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1667, + "referencedDeclaration": 1698, "src": "190:7:13", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$1667", + "typeIdentifier": "t_contract$_IERC165_$1698", "typeString": "contract IERC165" } }, - "id": 2830, + "id": 2861, "nodeType": "InheritanceSpecifier", "src": "190:7:13" } ], "contractDependencies": [ - 1667 + 1698 ], "contractKind": "interface", "documentation": { - "id": 2828, + "id": 2859, "nodeType": "StructuredDocumentation", "src": "101:67:13", "text": " @dev Required interface of an ERC721 compliant contract." }, "fullyImplemented": false, - "id": 2940, + "id": 2971, "linearizedBaseContracts": [ - 2940, - 1667 + 2971, + 1698 ], "name": "IERC721", "nodeType": "ContractDefinition", @@ -1756,27 +1756,27 @@ { "anonymous": false, "documentation": { - "id": 2831, + "id": 2862, "nodeType": "StructuredDocumentation", "src": "204:87:13", "text": " @dev Emitted when `tokenId` token is transfered from `from` to `to`." }, - "id": 2839, + "id": 2870, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 2838, + "id": 2869, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2833, + "id": 2864, "indexed": true, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2839, + "scope": 2870, "src": "311:20:13", "stateVariable": false, "storageLocation": "default", @@ -1785,7 +1785,7 @@ "typeString": "address" }, "typeName": { - "id": 2832, + "id": 2863, "name": "address", "nodeType": "ElementaryTypeName", "src": "311:7:13", @@ -1800,13 +1800,13 @@ }, { "constant": false, - "id": 2835, + "id": 2866, "indexed": true, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2839, + "scope": 2870, "src": "333:18:13", "stateVariable": false, "storageLocation": "default", @@ -1815,7 +1815,7 @@ "typeString": "address" }, "typeName": { - "id": 2834, + "id": 2865, "name": "address", "nodeType": "ElementaryTypeName", "src": "333:7:13", @@ -1830,13 +1830,13 @@ }, { "constant": false, - "id": 2837, + "id": 2868, "indexed": true, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2839, + "scope": 2870, "src": "353:23:13", "stateVariable": false, "storageLocation": "default", @@ -1845,7 +1845,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2836, + "id": 2867, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "353:7:13", @@ -1865,27 +1865,27 @@ { "anonymous": false, "documentation": { - "id": 2840, + "id": 2871, "nodeType": "StructuredDocumentation", "src": "384:94:13", "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." }, - "id": 2848, + "id": 2879, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 2847, + "id": 2878, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2842, + "id": 2873, "indexed": true, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2848, + "scope": 2879, "src": "498:21:13", "stateVariable": false, "storageLocation": "default", @@ -1894,7 +1894,7 @@ "typeString": "address" }, "typeName": { - "id": 2841, + "id": 2872, "name": "address", "nodeType": "ElementaryTypeName", "src": "498:7:13", @@ -1909,13 +1909,13 @@ }, { "constant": false, - "id": 2844, + "id": 2875, "indexed": true, "mutability": "mutable", "name": "approved", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2848, + "scope": 2879, "src": "521:24:13", "stateVariable": false, "storageLocation": "default", @@ -1924,7 +1924,7 @@ "typeString": "address" }, "typeName": { - "id": 2843, + "id": 2874, "name": "address", "nodeType": "ElementaryTypeName", "src": "521:7:13", @@ -1939,13 +1939,13 @@ }, { "constant": false, - "id": 2846, + "id": 2877, "indexed": true, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2848, + "scope": 2879, "src": "547:23:13", "stateVariable": false, "storageLocation": "default", @@ -1954,7 +1954,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2845, + "id": 2876, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "547:7:13", @@ -1974,27 +1974,27 @@ { "anonymous": false, "documentation": { - "id": 2849, + "id": 2880, "nodeType": "StructuredDocumentation", "src": "578:117:13", "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." }, - "id": 2857, + "id": 2888, "name": "ApprovalForAll", "nodeType": "EventDefinition", "parameters": { - "id": 2856, + "id": 2887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2851, + "id": 2882, "indexed": true, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2857, + "scope": 2888, "src": "721:21:13", "stateVariable": false, "storageLocation": "default", @@ -2003,7 +2003,7 @@ "typeString": "address" }, "typeName": { - "id": 2850, + "id": 2881, "name": "address", "nodeType": "ElementaryTypeName", "src": "721:7:13", @@ -2018,13 +2018,13 @@ }, { "constant": false, - "id": 2853, + "id": 2884, "indexed": true, "mutability": "mutable", "name": "operator", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2857, + "scope": 2888, "src": "744:24:13", "stateVariable": false, "storageLocation": "default", @@ -2033,7 +2033,7 @@ "typeString": "address" }, "typeName": { - "id": 2852, + "id": 2883, "name": "address", "nodeType": "ElementaryTypeName", "src": "744:7:13", @@ -2048,13 +2048,13 @@ }, { "constant": false, - "id": 2855, + "id": 2886, "indexed": false, "mutability": "mutable", "name": "approved", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2857, + "scope": 2888, "src": "770:13:13", "stateVariable": false, "storageLocation": "default", @@ -2063,7 +2063,7 @@ "typeString": "bool" }, "typeName": { - "id": 2854, + "id": 2885, "name": "bool", "nodeType": "ElementaryTypeName", "src": "770:4:13", @@ -2083,13 +2083,13 @@ { "body": null, "documentation": { - "id": 2858, + "id": 2889, "nodeType": "StructuredDocumentation", "src": "791:76:13", "text": " @dev Returns the number of tokens in ``owner``'s account." }, "functionSelector": "70a08231", - "id": 2865, + "id": 2896, "implemented": false, "kind": "function", "modifiers": [], @@ -2097,17 +2097,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2861, + "id": 2892, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2860, + "id": 2891, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2865, + "scope": 2896, "src": "891:13:13", "stateVariable": false, "storageLocation": "default", @@ -2116,7 +2116,7 @@ "typeString": "address" }, "typeName": { - "id": 2859, + "id": 2890, "name": "address", "nodeType": "ElementaryTypeName", "src": "891:7:13", @@ -2133,17 +2133,17 @@ "src": "890:15:13" }, "returnParameters": { - "id": 2864, + "id": 2895, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2863, + "id": 2894, "mutability": "mutable", "name": "balance", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2865, + "scope": 2896, "src": "929:15:13", "stateVariable": false, "storageLocation": "default", @@ -2152,7 +2152,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2862, + "id": 2893, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "929:7:13", @@ -2167,7 +2167,7 @@ ], "src": "928:17:13" }, - "scope": 2940, + "scope": 2971, "src": "872:74:13", "stateMutability": "view", "virtual": false, @@ -2176,13 +2176,13 @@ { "body": null, "documentation": { - "id": 2866, + "id": 2897, "nodeType": "StructuredDocumentation", "src": "952:131:13", "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." }, "functionSelector": "6352211e", - "id": 2873, + "id": 2904, "implemented": false, "kind": "function", "modifiers": [], @@ -2190,17 +2190,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2869, + "id": 2900, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2868, + "id": 2899, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2873, + "scope": 2904, "src": "1105:15:13", "stateVariable": false, "storageLocation": "default", @@ -2209,7 +2209,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2867, + "id": 2898, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1105:7:13", @@ -2225,17 +2225,17 @@ "src": "1104:17:13" }, "returnParameters": { - "id": 2872, + "id": 2903, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2871, + "id": 2902, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2873, + "scope": 2904, "src": "1145:13:13", "stateVariable": false, "storageLocation": "default", @@ -2244,7 +2244,7 @@ "typeString": "address" }, "typeName": { - "id": 2870, + "id": 2901, "name": "address", "nodeType": "ElementaryTypeName", "src": "1145:7:13", @@ -2260,7 +2260,7 @@ ], "src": "1144:15:13" }, - "scope": 2940, + "scope": 2971, "src": "1088:72:13", "stateMutability": "view", "virtual": false, @@ -2269,13 +2269,13 @@ { "body": null, "documentation": { - "id": 2874, + "id": 2905, "nodeType": "StructuredDocumentation", "src": "1166:690:13", "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." }, "functionSelector": "42842e0e", - "id": 2883, + "id": 2914, "implemented": false, "kind": "function", "modifiers": [], @@ -2283,17 +2283,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2881, + "id": 2912, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2876, + "id": 2907, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2883, + "scope": 2914, "src": "1887:12:13", "stateVariable": false, "storageLocation": "default", @@ -2302,7 +2302,7 @@ "typeString": "address" }, "typeName": { - "id": 2875, + "id": 2906, "name": "address", "nodeType": "ElementaryTypeName", "src": "1887:7:13", @@ -2317,12 +2317,12 @@ }, { "constant": false, - "id": 2878, + "id": 2909, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2883, + "scope": 2914, "src": "1901:10:13", "stateVariable": false, "storageLocation": "default", @@ -2331,7 +2331,7 @@ "typeString": "address" }, "typeName": { - "id": 2877, + "id": 2908, "name": "address", "nodeType": "ElementaryTypeName", "src": "1901:7:13", @@ -2346,12 +2346,12 @@ }, { "constant": false, - "id": 2880, + "id": 2911, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2883, + "scope": 2914, "src": "1913:15:13", "stateVariable": false, "storageLocation": "default", @@ -2360,7 +2360,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2879, + "id": 2910, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1913:7:13", @@ -2376,12 +2376,12 @@ "src": "1886:43:13" }, "returnParameters": { - "id": 2882, + "id": 2913, "nodeType": "ParameterList", "parameters": [], "src": "1938:0:13" }, - "scope": 2940, + "scope": 2971, "src": "1861:78:13", "stateMutability": "nonpayable", "virtual": false, @@ -2390,13 +2390,13 @@ { "body": null, "documentation": { - "id": 2884, + "id": 2915, "nodeType": "StructuredDocumentation", "src": "1945:504:13", "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." }, "functionSelector": "23b872dd", - "id": 2893, + "id": 2924, "implemented": false, "kind": "function", "modifiers": [], @@ -2404,17 +2404,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2891, + "id": 2922, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2886, + "id": 2917, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2893, + "scope": 2924, "src": "2476:12:13", "stateVariable": false, "storageLocation": "default", @@ -2423,7 +2423,7 @@ "typeString": "address" }, "typeName": { - "id": 2885, + "id": 2916, "name": "address", "nodeType": "ElementaryTypeName", "src": "2476:7:13", @@ -2438,12 +2438,12 @@ }, { "constant": false, - "id": 2888, + "id": 2919, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2893, + "scope": 2924, "src": "2490:10:13", "stateVariable": false, "storageLocation": "default", @@ -2452,7 +2452,7 @@ "typeString": "address" }, "typeName": { - "id": 2887, + "id": 2918, "name": "address", "nodeType": "ElementaryTypeName", "src": "2490:7:13", @@ -2467,12 +2467,12 @@ }, { "constant": false, - "id": 2890, + "id": 2921, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2893, + "scope": 2924, "src": "2502:15:13", "stateVariable": false, "storageLocation": "default", @@ -2481,7 +2481,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2889, + "id": 2920, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2502:7:13", @@ -2497,12 +2497,12 @@ "src": "2475:43:13" }, "returnParameters": { - "id": 2892, + "id": 2923, "nodeType": "ParameterList", "parameters": [], "src": "2527:0:13" }, - "scope": 2940, + "scope": 2971, "src": "2454:74:13", "stateMutability": "nonpayable", "virtual": false, @@ -2511,13 +2511,13 @@ { "body": null, "documentation": { - "id": 2894, + "id": 2925, "nodeType": "StructuredDocumentation", "src": "2534:452:13", "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." }, "functionSelector": "095ea7b3", - "id": 2901, + "id": 2932, "implemented": false, "kind": "function", "modifiers": [], @@ -2525,17 +2525,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2899, + "id": 2930, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2896, + "id": 2927, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2901, + "scope": 2932, "src": "3008:10:13", "stateVariable": false, "storageLocation": "default", @@ -2544,7 +2544,7 @@ "typeString": "address" }, "typeName": { - "id": 2895, + "id": 2926, "name": "address", "nodeType": "ElementaryTypeName", "src": "3008:7:13", @@ -2559,12 +2559,12 @@ }, { "constant": false, - "id": 2898, + "id": 2929, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2901, + "scope": 2932, "src": "3020:15:13", "stateVariable": false, "storageLocation": "default", @@ -2573,7 +2573,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2897, + "id": 2928, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3020:7:13", @@ -2589,12 +2589,12 @@ "src": "3007:29:13" }, "returnParameters": { - "id": 2900, + "id": 2931, "nodeType": "ParameterList", "parameters": [], "src": "3045:0:13" }, - "scope": 2940, + "scope": 2971, "src": "2991:55:13", "stateMutability": "nonpayable", "virtual": false, @@ -2603,13 +2603,13 @@ { "body": null, "documentation": { - "id": 2902, + "id": 2933, "nodeType": "StructuredDocumentation", "src": "3052:139:13", "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." }, "functionSelector": "081812fc", - "id": 2909, + "id": 2940, "implemented": false, "kind": "function", "modifiers": [], @@ -2617,17 +2617,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2905, + "id": 2936, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2904, + "id": 2935, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2909, + "scope": 2940, "src": "3217:15:13", "stateVariable": false, "storageLocation": "default", @@ -2636,7 +2636,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2903, + "id": 2934, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3217:7:13", @@ -2652,17 +2652,17 @@ "src": "3216:17:13" }, "returnParameters": { - "id": 2908, + "id": 2939, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2907, + "id": 2938, "mutability": "mutable", "name": "operator", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2909, + "scope": 2940, "src": "3257:16:13", "stateVariable": false, "storageLocation": "default", @@ -2671,7 +2671,7 @@ "typeString": "address" }, "typeName": { - "id": 2906, + "id": 2937, "name": "address", "nodeType": "ElementaryTypeName", "src": "3257:7:13", @@ -2687,7 +2687,7 @@ ], "src": "3256:18:13" }, - "scope": 2940, + "scope": 2971, "src": "3196:79:13", "stateMutability": "view", "virtual": false, @@ -2696,13 +2696,13 @@ { "body": null, "documentation": { - "id": 2910, + "id": 2941, "nodeType": "StructuredDocumentation", "src": "3281:309:13", "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." }, "functionSelector": "a22cb465", - "id": 2917, + "id": 2948, "implemented": false, "kind": "function", "modifiers": [], @@ -2710,17 +2710,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2915, + "id": 2946, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2912, + "id": 2943, "mutability": "mutable", "name": "operator", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2917, + "scope": 2948, "src": "3622:16:13", "stateVariable": false, "storageLocation": "default", @@ -2729,7 +2729,7 @@ "typeString": "address" }, "typeName": { - "id": 2911, + "id": 2942, "name": "address", "nodeType": "ElementaryTypeName", "src": "3622:7:13", @@ -2744,12 +2744,12 @@ }, { "constant": false, - "id": 2914, + "id": 2945, "mutability": "mutable", "name": "_approved", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2917, + "scope": 2948, "src": "3640:14:13", "stateVariable": false, "storageLocation": "default", @@ -2758,7 +2758,7 @@ "typeString": "bool" }, "typeName": { - "id": 2913, + "id": 2944, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3640:4:13", @@ -2774,12 +2774,12 @@ "src": "3621:34:13" }, "returnParameters": { - "id": 2916, + "id": 2947, "nodeType": "ParameterList", "parameters": [], "src": "3664:0:13" }, - "scope": 2940, + "scope": 2971, "src": "3595:70:13", "stateMutability": "nonpayable", "virtual": false, @@ -2788,13 +2788,13 @@ { "body": null, "documentation": { - "id": 2918, + "id": 2949, "nodeType": "StructuredDocumentation", "src": "3671:138:13", "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" }, "functionSelector": "e985e9c5", - "id": 2927, + "id": 2958, "implemented": false, "kind": "function", "modifiers": [], @@ -2802,17 +2802,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2923, + "id": 2954, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2920, + "id": 2951, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2927, + "scope": 2958, "src": "3840:13:13", "stateVariable": false, "storageLocation": "default", @@ -2821,7 +2821,7 @@ "typeString": "address" }, "typeName": { - "id": 2919, + "id": 2950, "name": "address", "nodeType": "ElementaryTypeName", "src": "3840:7:13", @@ -2836,12 +2836,12 @@ }, { "constant": false, - "id": 2922, + "id": 2953, "mutability": "mutable", "name": "operator", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2927, + "scope": 2958, "src": "3855:16:13", "stateVariable": false, "storageLocation": "default", @@ -2850,7 +2850,7 @@ "typeString": "address" }, "typeName": { - "id": 2921, + "id": 2952, "name": "address", "nodeType": "ElementaryTypeName", "src": "3855:7:13", @@ -2867,17 +2867,17 @@ "src": "3839:33:13" }, "returnParameters": { - "id": 2926, + "id": 2957, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2925, + "id": 2956, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2927, + "scope": 2958, "src": "3896:4:13", "stateVariable": false, "storageLocation": "default", @@ -2886,7 +2886,7 @@ "typeString": "bool" }, "typeName": { - "id": 2924, + "id": 2955, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3896:4:13", @@ -2901,7 +2901,7 @@ ], "src": "3895:6:13" }, - "scope": 2940, + "scope": 2971, "src": "3814:88:13", "stateMutability": "view", "virtual": false, @@ -2910,13 +2910,13 @@ { "body": null, "documentation": { - "id": 2928, + "id": 2959, "nodeType": "StructuredDocumentation", "src": "3908:566:13", "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." }, "functionSelector": "b88d4fde", - "id": 2939, + "id": 2970, "implemented": false, "kind": "function", "modifiers": [], @@ -2924,17 +2924,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2937, + "id": 2968, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2930, + "id": 2961, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2939, + "scope": 2970, "src": "4505:12:13", "stateVariable": false, "storageLocation": "default", @@ -2943,7 +2943,7 @@ "typeString": "address" }, "typeName": { - "id": 2929, + "id": 2960, "name": "address", "nodeType": "ElementaryTypeName", "src": "4505:7:13", @@ -2958,12 +2958,12 @@ }, { "constant": false, - "id": 2932, + "id": 2963, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2939, + "scope": 2970, "src": "4519:10:13", "stateVariable": false, "storageLocation": "default", @@ -2972,7 +2972,7 @@ "typeString": "address" }, "typeName": { - "id": 2931, + "id": 2962, "name": "address", "nodeType": "ElementaryTypeName", "src": "4519:7:13", @@ -2987,12 +2987,12 @@ }, { "constant": false, - "id": 2934, + "id": 2965, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2939, + "scope": 2970, "src": "4531:15:13", "stateVariable": false, "storageLocation": "default", @@ -3001,7 +3001,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2933, + "id": 2964, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4531:7:13", @@ -3015,12 +3015,12 @@ }, { "constant": false, - "id": 2936, + "id": 2967, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2939, + "scope": 2970, "src": "4548:19:13", "stateVariable": false, "storageLocation": "calldata", @@ -3029,7 +3029,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2935, + "id": 2966, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4548:5:13", @@ -3045,19 +3045,19 @@ "src": "4504:64:13" }, "returnParameters": { - "id": 2938, + "id": 2969, "nodeType": "ParameterList", "parameters": [], "src": "4577:0:13" }, - "scope": 2940, + "scope": 2971, "src": "4479:99:13", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 2941, + "scope": 2972, "src": "169:4411:13" } ], @@ -3065,13 +3065,25 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:05.996Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.708Z", "devdoc": { "details": "Required interface of an ERC721 compliant contract.", + "events": { + "Approval(address,address,uint256)": { + "details": "Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "ApprovalForAll(address,address,bool)": { + "details": "Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "Transfer(address,address,uint256)": { + "details": "Emitted when `tokenId` token is transfered from `from` to `to`." + } + }, + "kind": "dev", "methods": { "approve(address,uint256)": { "details": "Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event." @@ -3103,9 +3115,12 @@ "transferFrom(address,address,uint256)": { "details": "Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event." } - } + }, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/IERC721Enumerable.json b/abi/IERC721Enumerable.json index 66bb535..2ba14b6 100644 --- a/abi/IERC721Enumerable.json +++ b/abi/IERC721Enumerable.json @@ -343,7 +343,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"tokenByIndex(uint256)\":{\"details\":\"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\"},\"totalSupply()\":{\"details\":\"Returns the total amount of tokens stored by the contract.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional enumeration extension\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\":\"IERC721Enumerable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xfa152b6e88a1dc50780e8f1580426dc23ad2e1e2c2f086a088adf206a202f453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5127b264994adab88fae419b1c493efc5acd07134c19ee5c0397e50018291ebf\",\"dweb:/ipfs/QmWwJZVhvdmvUCdimbb6R2Jiu59zjPqm6XTMchM6LaEHAp\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x227bafd3e165b13f5d98c42a44376e48d41f4a265db8803f2707faaeae9659aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9aa7959a30871669ce46172cd117b084b607d602d9ce695ce79005582b0b69b\",\"dweb:/ipfs/QmXZUWeLXmArQinHL4RnacJLT22GvCExqREYM6pHLX7CX9\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\":{\"keccak256\":\"0x3636662804cd8f474536b2875a9038a4c3fb91879f1bbff48af5c3f140fcd2f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9fab8521263fa581544000cb57335a3f2e6bcdfbb5579d3ceaa5acf741c67c4f\",\"dweb:/ipfs/QmZfXnMom7JSNtfyie5yGPN1SUC4SmHbz4ScVBH88URmA7\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"tokenByIndex(uint256)\":{\"details\":\"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\"},\"totalSupply()\":{\"details\":\"Returns the total amount of tokens stored by the contract.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional enumeration extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\":\"IERC721Enumerable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xfa152b6e88a1dc50780e8f1580426dc23ad2e1e2c2f086a088adf206a202f453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5127b264994adab88fae419b1c493efc5acd07134c19ee5c0397e50018291ebf\",\"dweb:/ipfs/QmWwJZVhvdmvUCdimbb6R2Jiu59zjPqm6XTMchM6LaEHAp\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x227bafd3e165b13f5d98c42a44376e48d41f4a265db8803f2707faaeae9659aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9aa7959a30871669ce46172cd117b084b607d602d9ce695ce79005582b0b69b\",\"dweb:/ipfs/QmXZUWeLXmArQinHL4RnacJLT22GvCExqREYM6pHLX7CX9\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\":{\"keccak256\":\"0x3636662804cd8f474536b2875a9038a4c3fb91879f1bbff48af5c3f140fcd2f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9fab8521263fa581544000cb57335a3f2e6bcdfbb5579d3ceaa5acf741c67c4f\",\"dweb:/ipfs/QmZfXnMom7JSNtfyie5yGPN1SUC4SmHbz4ScVBH88URmA7\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, @@ -355,15 +355,15 @@ "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol", "exportedSymbols": { "IERC721Enumerable": [ - 2971 + 3002 ] }, - "id": 2972, + "id": 3003, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2942, + "id": 2973, "literals": [ "solidity", "^", @@ -376,10 +376,10 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", "file": "./IERC721.sol", - "id": 2943, + "id": 2974, "nodeType": "ImportDirective", - "scope": 2972, - "sourceUnit": 2941, + "scope": 3003, + "sourceUnit": 2972, "src": "58:23:14", "symbolAliases": [], "unitAlias": "" @@ -391,38 +391,38 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2945, + "id": 2976, "name": "IERC721", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2940, + "referencedDeclaration": 2971, "src": "251:7:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$2940", + "typeIdentifier": "t_contract$_IERC721_$2971", "typeString": "contract IERC721" } }, - "id": 2946, + "id": 2977, "nodeType": "InheritanceSpecifier", "src": "251:7:14" } ], "contractDependencies": [ - 1667, - 2940 + 1698, + 2971 ], "contractKind": "interface", "documentation": { - "id": 2944, + "id": 2975, "nodeType": "StructuredDocumentation", "src": "83:136:14", "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" }, "fullyImplemented": false, - "id": 2971, + "id": 3002, "linearizedBaseContracts": [ + 3002, 2971, - 2940, - 1667 + 1698 ], "name": "IERC721Enumerable", "nodeType": "ContractDefinition", @@ -430,13 +430,13 @@ { "body": null, "documentation": { - "id": 2947, + "id": 2978, "nodeType": "StructuredDocumentation", "src": "266:82:14", "text": " @dev Returns the total amount of tokens stored by the contract." }, "functionSelector": "18160ddd", - "id": 2952, + "id": 2983, "implemented": false, "kind": "function", "modifiers": [], @@ -444,23 +444,23 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2948, + "id": 2979, "nodeType": "ParameterList", "parameters": [], "src": "373:2:14" }, "returnParameters": { - "id": 2951, + "id": 2982, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2950, + "id": 2981, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2952, + "scope": 2983, "src": "399:7:14", "stateVariable": false, "storageLocation": "default", @@ -469,7 +469,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2949, + "id": 2980, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "399:7:14", @@ -484,7 +484,7 @@ ], "src": "398:9:14" }, - "scope": 2971, + "scope": 3002, "src": "353:55:14", "stateMutability": "view", "virtual": false, @@ -493,13 +493,13 @@ { "body": null, "documentation": { - "id": 2953, + "id": 2984, "nodeType": "StructuredDocumentation", "src": "414:171:14", "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." }, "functionSelector": "2f745c59", - "id": 2962, + "id": 2993, "implemented": false, "kind": "function", "modifiers": [], @@ -507,17 +507,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2958, + "id": 2989, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2955, + "id": 2986, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2962, + "scope": 2993, "src": "619:13:14", "stateVariable": false, "storageLocation": "default", @@ -526,7 +526,7 @@ "typeString": "address" }, "typeName": { - "id": 2954, + "id": 2985, "name": "address", "nodeType": "ElementaryTypeName", "src": "619:7:14", @@ -541,12 +541,12 @@ }, { "constant": false, - "id": 2957, + "id": 2988, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2962, + "scope": 2993, "src": "634:13:14", "stateVariable": false, "storageLocation": "default", @@ -555,7 +555,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2956, + "id": 2987, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "634:7:14", @@ -571,17 +571,17 @@ "src": "618:30:14" }, "returnParameters": { - "id": 2961, + "id": 2992, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2960, + "id": 2991, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2962, + "scope": 2993, "src": "672:15:14", "stateVariable": false, "storageLocation": "default", @@ -590,7 +590,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2959, + "id": 2990, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "672:7:14", @@ -605,7 +605,7 @@ ], "src": "671:17:14" }, - "scope": 2971, + "scope": 3002, "src": "590:99:14", "stateMutability": "view", "virtual": false, @@ -614,13 +614,13 @@ { "body": null, "documentation": { - "id": 2963, + "id": 2994, "nodeType": "StructuredDocumentation", "src": "695:164:14", "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." }, "functionSelector": "4f6ccce7", - "id": 2970, + "id": 3001, "implemented": false, "kind": "function", "modifiers": [], @@ -628,17 +628,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2966, + "id": 2997, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2965, + "id": 2996, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2970, + "scope": 3001, "src": "886:13:14", "stateVariable": false, "storageLocation": "default", @@ -647,7 +647,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2964, + "id": 2995, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "886:7:14", @@ -663,17 +663,17 @@ "src": "885:15:14" }, "returnParameters": { - "id": 2969, + "id": 3000, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2968, + "id": 2999, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2970, + "scope": 3001, "src": "924:7:14", "stateVariable": false, "storageLocation": "default", @@ -682,7 +682,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2967, + "id": 2998, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "924:7:14", @@ -697,14 +697,14 @@ ], "src": "923:9:14" }, - "scope": 2971, + "scope": 3002, "src": "864:69:14", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 2972, + "scope": 3003, "src": "220:715:14" } ], @@ -714,15 +714,15 @@ "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol", "exportedSymbols": { "IERC721Enumerable": [ - 2971 + 3002 ] }, - "id": 2972, + "id": 3003, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2942, + "id": 2973, "literals": [ "solidity", "^", @@ -735,10 +735,10 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", "file": "./IERC721.sol", - "id": 2943, + "id": 2974, "nodeType": "ImportDirective", - "scope": 2972, - "sourceUnit": 2941, + "scope": 3003, + "sourceUnit": 2972, "src": "58:23:14", "symbolAliases": [], "unitAlias": "" @@ -750,38 +750,38 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2945, + "id": 2976, "name": "IERC721", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2940, + "referencedDeclaration": 2971, "src": "251:7:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$2940", + "typeIdentifier": "t_contract$_IERC721_$2971", "typeString": "contract IERC721" } }, - "id": 2946, + "id": 2977, "nodeType": "InheritanceSpecifier", "src": "251:7:14" } ], "contractDependencies": [ - 1667, - 2940 + 1698, + 2971 ], "contractKind": "interface", "documentation": { - "id": 2944, + "id": 2975, "nodeType": "StructuredDocumentation", "src": "83:136:14", "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" }, "fullyImplemented": false, - "id": 2971, + "id": 3002, "linearizedBaseContracts": [ + 3002, 2971, - 2940, - 1667 + 1698 ], "name": "IERC721Enumerable", "nodeType": "ContractDefinition", @@ -789,13 +789,13 @@ { "body": null, "documentation": { - "id": 2947, + "id": 2978, "nodeType": "StructuredDocumentation", "src": "266:82:14", "text": " @dev Returns the total amount of tokens stored by the contract." }, "functionSelector": "18160ddd", - "id": 2952, + "id": 2983, "implemented": false, "kind": "function", "modifiers": [], @@ -803,23 +803,23 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2948, + "id": 2979, "nodeType": "ParameterList", "parameters": [], "src": "373:2:14" }, "returnParameters": { - "id": 2951, + "id": 2982, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2950, + "id": 2981, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2952, + "scope": 2983, "src": "399:7:14", "stateVariable": false, "storageLocation": "default", @@ -828,7 +828,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2949, + "id": 2980, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "399:7:14", @@ -843,7 +843,7 @@ ], "src": "398:9:14" }, - "scope": 2971, + "scope": 3002, "src": "353:55:14", "stateMutability": "view", "virtual": false, @@ -852,13 +852,13 @@ { "body": null, "documentation": { - "id": 2953, + "id": 2984, "nodeType": "StructuredDocumentation", "src": "414:171:14", "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." }, "functionSelector": "2f745c59", - "id": 2962, + "id": 2993, "implemented": false, "kind": "function", "modifiers": [], @@ -866,17 +866,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2958, + "id": 2989, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2955, + "id": 2986, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2962, + "scope": 2993, "src": "619:13:14", "stateVariable": false, "storageLocation": "default", @@ -885,7 +885,7 @@ "typeString": "address" }, "typeName": { - "id": 2954, + "id": 2985, "name": "address", "nodeType": "ElementaryTypeName", "src": "619:7:14", @@ -900,12 +900,12 @@ }, { "constant": false, - "id": 2957, + "id": 2988, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2962, + "scope": 2993, "src": "634:13:14", "stateVariable": false, "storageLocation": "default", @@ -914,7 +914,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2956, + "id": 2987, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "634:7:14", @@ -930,17 +930,17 @@ "src": "618:30:14" }, "returnParameters": { - "id": 2961, + "id": 2992, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2960, + "id": 2991, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2962, + "scope": 2993, "src": "672:15:14", "stateVariable": false, "storageLocation": "default", @@ -949,7 +949,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2959, + "id": 2990, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "672:7:14", @@ -964,7 +964,7 @@ ], "src": "671:17:14" }, - "scope": 2971, + "scope": 3002, "src": "590:99:14", "stateMutability": "view", "virtual": false, @@ -973,13 +973,13 @@ { "body": null, "documentation": { - "id": 2963, + "id": 2994, "nodeType": "StructuredDocumentation", "src": "695:164:14", "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." }, "functionSelector": "4f6ccce7", - "id": 2970, + "id": 3001, "implemented": false, "kind": "function", "modifiers": [], @@ -987,17 +987,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2966, + "id": 2997, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2965, + "id": 2996, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2970, + "scope": 3001, "src": "886:13:14", "stateVariable": false, "storageLocation": "default", @@ -1006,7 +1006,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2964, + "id": 2995, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "886:7:14", @@ -1022,17 +1022,17 @@ "src": "885:15:14" }, "returnParameters": { - "id": 2969, + "id": 3000, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2968, + "id": 2999, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2970, + "scope": 3001, "src": "924:7:14", "stateVariable": false, "storageLocation": "default", @@ -1041,7 +1041,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2967, + "id": 2998, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "924:7:14", @@ -1056,14 +1056,14 @@ ], "src": "923:9:14" }, - "scope": 2971, + "scope": 3002, "src": "864:69:14", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 2972, + "scope": 3003, "src": "220:715:14" } ], @@ -1071,13 +1071,14 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:05.998Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.711Z", "devdoc": { "details": "See https://eips.ethereum.org/EIPS/eip-721", + "kind": "dev", "methods": { "approve(address,uint256)": { "details": "Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event." @@ -1119,9 +1120,12 @@ "details": "Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event." } }, - "title": "ERC-721 Non-Fungible Token Standard, optional enumeration extension" + "title": "ERC-721 Non-Fungible Token Standard, optional enumeration extension", + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/IERC721Metadata.json b/abi/IERC721Metadata.json index 40d8171..3dfe870 100644 --- a/abi/IERC721Metadata.json +++ b/abi/IERC721Metadata.json @@ -332,7 +332,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xfa152b6e88a1dc50780e8f1580426dc23ad2e1e2c2f086a088adf206a202f453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5127b264994adab88fae419b1c493efc5acd07134c19ee5c0397e50018291ebf\",\"dweb:/ipfs/QmWwJZVhvdmvUCdimbb6R2Jiu59zjPqm6XTMchM6LaEHAp\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x227bafd3e165b13f5d98c42a44376e48d41f4a265db8803f2707faaeae9659aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9aa7959a30871669ce46172cd117b084b607d602d9ce695ce79005582b0b69b\",\"dweb:/ipfs/QmXZUWeLXmArQinHL4RnacJLT22GvCExqREYM6pHLX7CX9\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0xe7f984cedc00a138dc27f263c73c32ba9a4b2fd23b6c34ac46f46c074b943538\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f4acda12f076fe7584921241ddbb5b460ca7cad6cb8a42252ac7f2a9f539127\",\"dweb:/ipfs/QmQmfhkEv9GrhdWe67QtXnU19AMuoEmy31QnHPkucdYLjZ\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xfa152b6e88a1dc50780e8f1580426dc23ad2e1e2c2f086a088adf206a202f453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5127b264994adab88fae419b1c493efc5acd07134c19ee5c0397e50018291ebf\",\"dweb:/ipfs/QmWwJZVhvdmvUCdimbb6R2Jiu59zjPqm6XTMchM6LaEHAp\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x227bafd3e165b13f5d98c42a44376e48d41f4a265db8803f2707faaeae9659aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9aa7959a30871669ce46172cd117b084b607d602d9ce695ce79005582b0b69b\",\"dweb:/ipfs/QmXZUWeLXmArQinHL4RnacJLT22GvCExqREYM6pHLX7CX9\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0xe7f984cedc00a138dc27f263c73c32ba9a4b2fd23b6c34ac46f46c074b943538\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f4acda12f076fe7584921241ddbb5b460ca7cad6cb8a42252ac7f2a9f539127\",\"dweb:/ipfs/QmQmfhkEv9GrhdWe67QtXnU19AMuoEmy31QnHPkucdYLjZ\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, @@ -344,15 +344,15 @@ "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Metadata.sol", "exportedSymbols": { "IERC721Metadata": [ - 2998 + 3029 ] }, - "id": 2999, + "id": 3030, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2973, + "id": 3004, "literals": [ "solidity", "^", @@ -365,10 +365,10 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", "file": "./IERC721.sol", - "id": 2974, + "id": 3005, "nodeType": "ImportDirective", - "scope": 2999, - "sourceUnit": 2941, + "scope": 3030, + "sourceUnit": 2972, "src": "58:23:15", "symbolAliases": [], "unitAlias": "" @@ -380,38 +380,38 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2976, + "id": 3007, "name": "IERC721", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2940, + "referencedDeclaration": 2971, "src": "246:7:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$2940", + "typeIdentifier": "t_contract$_IERC721_$2971", "typeString": "contract IERC721" } }, - "id": 2977, + "id": 3008, "nodeType": "InheritanceSpecifier", "src": "246:7:15" } ], "contractDependencies": [ - 1667, - 2940 + 1698, + 2971 ], "contractKind": "interface", "documentation": { - "id": 2975, + "id": 3006, "nodeType": "StructuredDocumentation", "src": "83:133:15", "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" }, "fullyImplemented": false, - "id": 2998, + "id": 3029, "linearizedBaseContracts": [ - 2998, - 2940, - 1667 + 3029, + 2971, + 1698 ], "name": "IERC721Metadata", "nodeType": "ContractDefinition", @@ -419,13 +419,13 @@ { "body": null, "documentation": { - "id": 2978, + "id": 3009, "nodeType": "StructuredDocumentation", "src": "261:58:15", "text": " @dev Returns the token collection name." }, "functionSelector": "06fdde03", - "id": 2983, + "id": 3014, "implemented": false, "kind": "function", "modifiers": [], @@ -433,23 +433,23 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2979, + "id": 3010, "nodeType": "ParameterList", "parameters": [], "src": "337:2:15" }, "returnParameters": { - "id": 2982, + "id": 3013, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2981, + "id": 3012, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2983, + "scope": 3014, "src": "363:13:15", "stateVariable": false, "storageLocation": "memory", @@ -458,7 +458,7 @@ "typeString": "string" }, "typeName": { - "id": 2980, + "id": 3011, "name": "string", "nodeType": "ElementaryTypeName", "src": "363:6:15", @@ -473,7 +473,7 @@ ], "src": "362:15:15" }, - "scope": 2998, + "scope": 3029, "src": "324:54:15", "stateMutability": "view", "virtual": false, @@ -482,13 +482,13 @@ { "body": null, "documentation": { - "id": 2984, + "id": 3015, "nodeType": "StructuredDocumentation", "src": "384:60:15", "text": " @dev Returns the token collection symbol." }, "functionSelector": "95d89b41", - "id": 2989, + "id": 3020, "implemented": false, "kind": "function", "modifiers": [], @@ -496,23 +496,23 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2985, + "id": 3016, "nodeType": "ParameterList", "parameters": [], "src": "464:2:15" }, "returnParameters": { - "id": 2988, + "id": 3019, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2987, + "id": 3018, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2989, + "scope": 3020, "src": "490:13:15", "stateVariable": false, "storageLocation": "memory", @@ -521,7 +521,7 @@ "typeString": "string" }, "typeName": { - "id": 2986, + "id": 3017, "name": "string", "nodeType": "ElementaryTypeName", "src": "490:6:15", @@ -536,7 +536,7 @@ ], "src": "489:15:15" }, - "scope": 2998, + "scope": 3029, "src": "449:56:15", "stateMutability": "view", "virtual": false, @@ -545,13 +545,13 @@ { "body": null, "documentation": { - "id": 2990, + "id": 3021, "nodeType": "StructuredDocumentation", "src": "511:90:15", "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." }, "functionSelector": "c87b56dd", - "id": 2997, + "id": 3028, "implemented": false, "kind": "function", "modifiers": [], @@ -559,17 +559,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2993, + "id": 3024, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2992, + "id": 3023, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2997, + "scope": 3028, "src": "624:15:15", "stateVariable": false, "storageLocation": "default", @@ -578,7 +578,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2991, + "id": 3022, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "624:7:15", @@ -594,17 +594,17 @@ "src": "623:17:15" }, "returnParameters": { - "id": 2996, + "id": 3027, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2995, + "id": 3026, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2997, + "scope": 3028, "src": "664:13:15", "stateVariable": false, "storageLocation": "memory", @@ -613,7 +613,7 @@ "typeString": "string" }, "typeName": { - "id": 2994, + "id": 3025, "name": "string", "nodeType": "ElementaryTypeName", "src": "664:6:15", @@ -628,14 +628,14 @@ ], "src": "663:15:15" }, - "scope": 2998, + "scope": 3029, "src": "606:73:15", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 2999, + "scope": 3030, "src": "217:464:15" } ], @@ -645,15 +645,15 @@ "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Metadata.sol", "exportedSymbols": { "IERC721Metadata": [ - 2998 + 3029 ] }, - "id": 2999, + "id": 3030, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 2973, + "id": 3004, "literals": [ "solidity", "^", @@ -666,10 +666,10 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", "file": "./IERC721.sol", - "id": 2974, + "id": 3005, "nodeType": "ImportDirective", - "scope": 2999, - "sourceUnit": 2941, + "scope": 3030, + "sourceUnit": 2972, "src": "58:23:15", "symbolAliases": [], "unitAlias": "" @@ -681,38 +681,38 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2976, + "id": 3007, "name": "IERC721", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2940, + "referencedDeclaration": 2971, "src": "246:7:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$2940", + "typeIdentifier": "t_contract$_IERC721_$2971", "typeString": "contract IERC721" } }, - "id": 2977, + "id": 3008, "nodeType": "InheritanceSpecifier", "src": "246:7:15" } ], "contractDependencies": [ - 1667, - 2940 + 1698, + 2971 ], "contractKind": "interface", "documentation": { - "id": 2975, + "id": 3006, "nodeType": "StructuredDocumentation", "src": "83:133:15", "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" }, "fullyImplemented": false, - "id": 2998, + "id": 3029, "linearizedBaseContracts": [ - 2998, - 2940, - 1667 + 3029, + 2971, + 1698 ], "name": "IERC721Metadata", "nodeType": "ContractDefinition", @@ -720,13 +720,13 @@ { "body": null, "documentation": { - "id": 2978, + "id": 3009, "nodeType": "StructuredDocumentation", "src": "261:58:15", "text": " @dev Returns the token collection name." }, "functionSelector": "06fdde03", - "id": 2983, + "id": 3014, "implemented": false, "kind": "function", "modifiers": [], @@ -734,23 +734,23 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2979, + "id": 3010, "nodeType": "ParameterList", "parameters": [], "src": "337:2:15" }, "returnParameters": { - "id": 2982, + "id": 3013, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2981, + "id": 3012, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2983, + "scope": 3014, "src": "363:13:15", "stateVariable": false, "storageLocation": "memory", @@ -759,7 +759,7 @@ "typeString": "string" }, "typeName": { - "id": 2980, + "id": 3011, "name": "string", "nodeType": "ElementaryTypeName", "src": "363:6:15", @@ -774,7 +774,7 @@ ], "src": "362:15:15" }, - "scope": 2998, + "scope": 3029, "src": "324:54:15", "stateMutability": "view", "virtual": false, @@ -783,13 +783,13 @@ { "body": null, "documentation": { - "id": 2984, + "id": 3015, "nodeType": "StructuredDocumentation", "src": "384:60:15", "text": " @dev Returns the token collection symbol." }, "functionSelector": "95d89b41", - "id": 2989, + "id": 3020, "implemented": false, "kind": "function", "modifiers": [], @@ -797,23 +797,23 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2985, + "id": 3016, "nodeType": "ParameterList", "parameters": [], "src": "464:2:15" }, "returnParameters": { - "id": 2988, + "id": 3019, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2987, + "id": 3018, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2989, + "scope": 3020, "src": "490:13:15", "stateVariable": false, "storageLocation": "memory", @@ -822,7 +822,7 @@ "typeString": "string" }, "typeName": { - "id": 2986, + "id": 3017, "name": "string", "nodeType": "ElementaryTypeName", "src": "490:6:15", @@ -837,7 +837,7 @@ ], "src": "489:15:15" }, - "scope": 2998, + "scope": 3029, "src": "449:56:15", "stateMutability": "view", "virtual": false, @@ -846,13 +846,13 @@ { "body": null, "documentation": { - "id": 2990, + "id": 3021, "nodeType": "StructuredDocumentation", "src": "511:90:15", "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." }, "functionSelector": "c87b56dd", - "id": 2997, + "id": 3028, "implemented": false, "kind": "function", "modifiers": [], @@ -860,17 +860,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 2993, + "id": 3024, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2992, + "id": 3023, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2997, + "scope": 3028, "src": "624:15:15", "stateVariable": false, "storageLocation": "default", @@ -879,7 +879,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2991, + "id": 3022, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "624:7:15", @@ -895,17 +895,17 @@ "src": "623:17:15" }, "returnParameters": { - "id": 2996, + "id": 3027, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2995, + "id": 3026, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 2997, + "scope": 3028, "src": "664:13:15", "stateVariable": false, "storageLocation": "memory", @@ -914,7 +914,7 @@ "typeString": "string" }, "typeName": { - "id": 2994, + "id": 3025, "name": "string", "nodeType": "ElementaryTypeName", "src": "664:6:15", @@ -929,14 +929,14 @@ ], "src": "663:15:15" }, - "scope": 2998, + "scope": 3029, "src": "606:73:15", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 2999, + "scope": 3030, "src": "217:464:15" } ], @@ -944,13 +944,14 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:05.999Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.713Z", "devdoc": { "details": "See https://eips.ethereum.org/EIPS/eip-721", + "kind": "dev", "methods": { "approve(address,uint256)": { "details": "Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event." @@ -992,9 +993,12 @@ "details": "Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event." } }, - "title": "ERC-721 Non-Fungible Token Standard, optional metadata extension" + "title": "ERC-721 Non-Fungible Token Standard, optional metadata extension", + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/IERC721Receiver.json b/abi/IERC721Receiver.json index 127a8ef..3ca9491 100644 --- a/abi/IERC721Receiver.json +++ b/abi/IERC721Receiver.json @@ -36,7 +36,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x321ee37ef4925020aa818a03ec7fe48e057561f65ab009a84f6c20c86026ade7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01f9d74a17a56024984251b97e428e24c9d3abffbae5bd290f0ec263c82e9694\",\"dweb:/ipfs/QmRryCuuXu2ukrDmatB8TqdEhPLiK6NBRt41RiPUaX1qKy\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x321ee37ef4925020aa818a03ec7fe48e057561f65ab009a84f6c20c86026ade7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01f9d74a17a56024984251b97e428e24c9d3abffbae5bd290f0ec263c82e9694\",\"dweb:/ipfs/QmRryCuuXu2ukrDmatB8TqdEhPLiK6NBRt41RiPUaX1qKy\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, @@ -48,15 +48,15 @@ "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", "exportedSymbols": { "IERC721Receiver": [ - 3016 + 3047 ] }, - "id": 3017, + "id": 3048, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 3000, + "id": 3031, "literals": [ "solidity", "^", @@ -72,15 +72,15 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 3001, + "id": 3032, "nodeType": "StructuredDocumentation", "src": "58:152:16", "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." }, "fullyImplemented": false, - "id": 3016, + "id": 3047, "linearizedBaseContracts": [ - 3016 + 3047 ], "name": "IERC721Receiver", "nodeType": "ContractDefinition", @@ -88,13 +88,13 @@ { "body": null, "documentation": { - "id": 3002, + "id": 3033, "nodeType": "StructuredDocumentation", "src": "243:485:16", "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." }, "functionSelector": "150b7a02", - "id": 3015, + "id": 3046, "implemented": false, "kind": "function", "modifiers": [], @@ -102,17 +102,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3011, + "id": 3042, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3004, + "id": 3035, "mutability": "mutable", "name": "operator", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3015, + "scope": 3046, "src": "759:16:16", "stateVariable": false, "storageLocation": "default", @@ -121,7 +121,7 @@ "typeString": "address" }, "typeName": { - "id": 3003, + "id": 3034, "name": "address", "nodeType": "ElementaryTypeName", "src": "759:7:16", @@ -136,12 +136,12 @@ }, { "constant": false, - "id": 3006, + "id": 3037, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3015, + "scope": 3046, "src": "777:12:16", "stateVariable": false, "storageLocation": "default", @@ -150,7 +150,7 @@ "typeString": "address" }, "typeName": { - "id": 3005, + "id": 3036, "name": "address", "nodeType": "ElementaryTypeName", "src": "777:7:16", @@ -165,12 +165,12 @@ }, { "constant": false, - "id": 3008, + "id": 3039, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3015, + "scope": 3046, "src": "791:15:16", "stateVariable": false, "storageLocation": "default", @@ -179,7 +179,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3007, + "id": 3038, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "791:7:16", @@ -193,12 +193,12 @@ }, { "constant": false, - "id": 3010, + "id": 3041, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3015, + "scope": 3046, "src": "808:19:16", "stateVariable": false, "storageLocation": "calldata", @@ -207,7 +207,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3009, + "id": 3040, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "808:5:16", @@ -223,17 +223,17 @@ "src": "758:70:16" }, "returnParameters": { - "id": 3014, + "id": 3045, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3013, + "id": 3044, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3015, + "scope": 3046, "src": "851:6:16", "stateVariable": false, "storageLocation": "default", @@ -242,7 +242,7 @@ "typeString": "bytes4" }, "typeName": { - "id": 3012, + "id": 3043, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "851:6:16", @@ -257,14 +257,14 @@ ], "src": "850:8:16" }, - "scope": 3016, + "scope": 3047, "src": "733:126:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 3017, + "scope": 3048, "src": "211:650:16" } ], @@ -274,15 +274,15 @@ "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", "exportedSymbols": { "IERC721Receiver": [ - 3016 + 3047 ] }, - "id": 3017, + "id": 3048, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 3000, + "id": 3031, "literals": [ "solidity", "^", @@ -298,15 +298,15 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 3001, + "id": 3032, "nodeType": "StructuredDocumentation", "src": "58:152:16", "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." }, "fullyImplemented": false, - "id": 3016, + "id": 3047, "linearizedBaseContracts": [ - 3016 + 3047 ], "name": "IERC721Receiver", "nodeType": "ContractDefinition", @@ -314,13 +314,13 @@ { "body": null, "documentation": { - "id": 3002, + "id": 3033, "nodeType": "StructuredDocumentation", "src": "243:485:16", "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." }, "functionSelector": "150b7a02", - "id": 3015, + "id": 3046, "implemented": false, "kind": "function", "modifiers": [], @@ -328,17 +328,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 3011, + "id": 3042, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3004, + "id": 3035, "mutability": "mutable", "name": "operator", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3015, + "scope": 3046, "src": "759:16:16", "stateVariable": false, "storageLocation": "default", @@ -347,7 +347,7 @@ "typeString": "address" }, "typeName": { - "id": 3003, + "id": 3034, "name": "address", "nodeType": "ElementaryTypeName", "src": "759:7:16", @@ -362,12 +362,12 @@ }, { "constant": false, - "id": 3006, + "id": 3037, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3015, + "scope": 3046, "src": "777:12:16", "stateVariable": false, "storageLocation": "default", @@ -376,7 +376,7 @@ "typeString": "address" }, "typeName": { - "id": 3005, + "id": 3036, "name": "address", "nodeType": "ElementaryTypeName", "src": "777:7:16", @@ -391,12 +391,12 @@ }, { "constant": false, - "id": 3008, + "id": 3039, "mutability": "mutable", "name": "tokenId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3015, + "scope": 3046, "src": "791:15:16", "stateVariable": false, "storageLocation": "default", @@ -405,7 +405,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3007, + "id": 3038, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "791:7:16", @@ -419,12 +419,12 @@ }, { "constant": false, - "id": 3010, + "id": 3041, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3015, + "scope": 3046, "src": "808:19:16", "stateVariable": false, "storageLocation": "calldata", @@ -433,7 +433,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3009, + "id": 3040, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "808:5:16", @@ -449,17 +449,17 @@ "src": "758:70:16" }, "returnParameters": { - "id": 3014, + "id": 3045, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3013, + "id": 3044, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 3015, + "scope": 3046, "src": "851:6:16", "stateVariable": false, "storageLocation": "default", @@ -468,7 +468,7 @@ "typeString": "bytes4" }, "typeName": { - "id": 3012, + "id": 3043, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "851:6:16", @@ -483,14 +483,14 @@ ], "src": "850:8:16" }, - "scope": 3016, + "scope": 3047, "src": "733:126:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 3017, + "scope": 3048, "src": "211:650:16" } ], @@ -498,21 +498,25 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:06.000Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.726Z", "devdoc": { "details": "Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.", + "kind": "dev", "methods": { "onERC721Received(address,address,uint256,bytes)": { "details": "Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." } }, - "title": "ERC721 token receiver interface" + "title": "ERC721 token receiver interface", + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/MakerBadges.json b/abi/MakerBadges.json index 8946dd0..2030b53 100644 --- a/abi/MakerBadges.json +++ b/abi/MakerBadges.json @@ -2,7 +2,23 @@ "contractName": "MakerBadges", "abi": [ { - "inputs": [], + "inputs": [ + { + "internalType": "address", + "name": "pot_", + "type": "address" + }, + { + "internalType": "address", + "name": "chief_", + "type": "address" + }, + { + "internalType": "address", + "name": "flipper_", + "type": "address" + } + ], "stateMutability": "nonpayable", "type": "constructor" }, @@ -169,6 +185,20 @@ "stateMutability": "nonpayable", "type": "fallback" }, + { + "inputs": [], + "name": "ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", @@ -530,44 +560,44 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"DSChiefChecked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"FlipperChecked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"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\":\"guy\",\"type\":\"address\"}],\"name\":\"PotChecked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAUSER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"}],\"name\":\"chiefChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bidId\",\"type\":\"uint256\"}],\"name\":\"flipperChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"}],\"name\":\"potChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"roots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"rootHashes\",\"type\":\"bytes32[]\"}],\"name\":\"setRootHashes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"chiefChallenge(uint256)\":{\"details\":\"Keeps track of the address of the caller if successful\",\"returns\":{\"_0\":\"True if the caller successfully checked for activity on DSChief\"}},\"flipperChallenge(uint256,uint256)\":{\"details\":\"Keeps track of the address of the caller if successfulguy, high bidder\",\"returns\":{\"_0\":\"True if the caller successfully checked for activity on Flipper\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"details\":\"the caller must have the 'PAUSER_ROLE'\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"potChallenge(uint256)\":{\"details\":\"Keeps track of the address of the caller if successful\",\"returns\":{\"_0\":\"True if the caller successfully checked for activity on Pot\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"setRootHashes(bytes32[])\":{\"details\":\"Called by owner to update roots for different address batches by templateId\",\"params\":{\"rootHashes\":\"Root hashes of the Merkle Trees by templateId\"},\"returns\":{\"_0\":\"True if successfully updated\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"details\":\"the caller must have the 'PAUSER_ROLE'\"},\"verify(uint256,address)\":{\"details\":\"Verify if the address of guy exists\",\"params\":{\"guy\":\"Address to verify\"},\"returns\":{\"_0\":\"True if guy is a redeemer\"}}},\"stateVariables\":{\"RAY\":{\"details\":\"Math\"},\"pot\":{\"details\":\"Data\"}}},\"userdoc\":{\"methods\":{\"chiefChallenge(uint256)\":{\"notice\":\"DSChief Challenge\"},\"flipperChallenge(uint256,uint256)\":{\"notice\":\"Flipper Challenge\"},\"pause()\":{\"notice\":\"Pause all the functions\"},\"potChallenge(uint256)\":{\"notice\":\"Pot Challenge\"},\"setRootHashes(bytes32[])\":{\"notice\":\"Set Merkle Tree Root Hashes array\"},\"unpause()\":{\"notice\":\"Unpause all the functions\"},\"verify(uint256,address)\":{\"notice\":\"Check if guy is a redeemer\"}}}},\"settings\":{\"compilationTarget\":{\"/home/sencha/maker-badges/contracts/MakerBadges.sol\":\"MakerBadges\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/sencha/maker-badges/contracts/MakerBadges.sol\":{\"keccak256\":\"0x570c9a022411ed8db97e8acc575d01f784e70e13649a1fd2235174933f2886f8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d921c4b81919585f53c69fbfdf7e6745aa4b48ef7d602bd89f50c3acc850c27e\",\"dweb:/ipfs/QmQDWFVCvE9sc4SNVuTUg5gyh5FdsBhzhxv2hfGJWHaiyN\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x92f7900d382761c7faefeaced81c6b4f1aae909ed0551803bfe8f27101956360\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://407c0864143968542e5cf5aa7556916d2cf292b201e3dadb65662e9a3aa24187\",\"dweb:/ipfs/QmSnXzYAUaGLGr7uofRbgQraTJvatbjQLBPhyYiMd18oUJ\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c\",\"dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe\"]}},\"version\":1}", - "bytecode": "0x60e06040523480156200001157600080fd5b506000620000246200021e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000600260006101000a81548160ff021916908315150217905550620001016000801b620000f56200022660201b60201c565b6200024f60201b60201c565b62000137604051620001139062000420565b60405180910390206200012b6200022660201b60201c565b6200024f60201b60201c565b73ea190dbdc7adf265260ec4da6e9675fd4f5a78bb73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505073bbffc76e94b34f72d96d054b31f6424249c1337d73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b8152505073b40139ea36d35d0c9f6a2e62601b616f1ffbbd1b73ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b8152505062000442565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200026182826200026560201b60201c565b5050565b6200029481600160008581526020019081526020016000206000016200030960201b6200113f1790919060201c565b156200030557620002aa6200021e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600062000339836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6200034160201b60201c565b905092915050565b6000620003558383620003bb60201b60201c565b620003b0578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050620003b5565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b6000620003ed600b8362000437565b91507f5041555345525f524f4c450000000000000000000000000000000000000000006000830152600b82019050919050565b60006200042d82620003de565b9150819050919050565b600081905092915050565b60805160601c60a05160601c60c05160601c61284f620004876000398061086e525080610fbf525080611494528061154152806115e55280611688525061284f6000f3fe608060405234801561001057600080fd5b506004361061013b5760003560e01c80639c1c94fd116100b8578063ca15c8731161007c578063ca15c87314610341578063d547741f14610371578063e63ab1e91461038d578063ebfa62b9146103ab578063f2fde38b146103db578063f36618a6146103f75761013c565b80639c1c94fd14610263578063a217fddf14610293578063aca57703146102b1578063baf2868b146102e1578063c2b40ae4146103115761013c565b8063715018a6116100ff578063715018a6146101d15780638456cb59146101db5780638da5cb5b146101e55780639010d07c1461020357806391d14854146102335761013c565b8063248a9ca3146101415780632f2ff15d1461017157806336568abe1461018d5780633f4ba83a146101a95780635c975abb146101b35761013c565b5b600080fd5b61015b60048036038101906101569190611ced565b610427565b60405161016891906124e4565b60405180910390f35b61018b60048036038101906101869190611d3f565b610447565b005b6101a760048036038101906101a29190611d3f565b6104bb565b005b6101b161053e565b005b6101bb6105a4565b6040516101c891906124c9565b60405180910390f35b6101d96105bb565b005b6101e3610710565b005b6101ed610776565b6040516101fa9190612493565b60405180910390f35b61021d60048036038101906102189190611d7b565b61079f565b60405161022a9190612493565b60405180910390f35b61024d60048036038101906102489190611d3f565b6107d1565b60405161025a91906124c9565b60405180910390f35b61027d60048036038101906102789190611e6f565b610803565b60405161028a91906124c9565b60405180910390f35b61029b610a09565b6040516102a891906124e4565b60405180910390f35b6102cb60048036038101906102c69190611ca8565b610a10565b6040516102d891906124c9565b60405180910390f35b6102fb60048036038101906102f69190611de1565b610b14565b60405161030891906124c9565b60405180910390f35b61032b60048036038101906103269190611de1565b610c51565b60405161033891906124e4565b60405180910390f35b61035b60048036038101906103569190611ced565b610c72565b60405161036891906126bf565b60405180910390f35b61038b60048036038101906103869190611d3f565b610c99565b005b610395610d0d565b6040516103a291906124e4565b60405180910390f35b6103c560048036038101906103c09190611e33565b610d24565b6040516103d291906124c9565b60405180910390f35b6103f560048036038101906103f09190611c7f565b610da3565b005b610411600480360381019061040c9190611de1565b610f67565b60405161041e91906124c9565b60405180910390f35b600060016000838152602001908152602001600020600201549050919050565b61046e600160008481526020019081526020016000206002015461046961116f565b6107d1565b6104ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a49061251f565b60405180910390fd5b6104b78282611177565b5050565b6104c361116f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610530576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105279061269f565b60405180910390fd5b61053a828261120b565b5050565b61055b60405161054d9061247e565b6040518091039020336107d1565b61059a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105919061265f565b60405180910390fd5b6105a261129f565b565b6000600260009054906101000a900460ff16905090565b6105c361116f565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610651576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106489061261f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61072d60405161071f9061247e565b6040518091039020336107d1565b61076c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107639061263f565b60405180910390fd5b610774611349565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006107c982600160008681526020019081526020016000206000016113f490919063ffffffff16565b905092915050565b60006107fb826001600086815260200190815260200160002060000161140e90919063ffffffff16565b905092915050565b6000600260009054906101000a900460ff1615610855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084c906125bf565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634423c5f1846040518263ffffffff1660e01b81526004016108c591906126bf565b6101006040518083038186803b1580156108de57600080fd5b505afa1580156108f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109169190611db7565b6040015173ffffffffffffffffffffffffffffffffffffffff1614610970576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109679061267f565b60405180910390fd5b610995336004600086815260200190815260200160002061140e90919063ffffffff16565b6109c8576109be336004600086815260200190815260200160002061113f90919063ffffffff16565b6109c757600080fd5b5b7f430bb0ab986389293d8f0855931d73d3e3bdc06890eb3e780550c98a7582a7ef336040516109f791906124ae565b60405180910390a16001905092915050565b6000801b81565b6000610a1a61116f565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9f9061261f565b60405180910390fd5b600260009054906101000a900460ff1615610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef906125bf565b60405180910390fd5b828260039190610b09929190611a6a565b506001905092915050565b6000600260009054906101000a900460ff1615610b66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5d906125bf565b60405180910390fd5b670de0b6b3a7640000610b783361143e565b1015610bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb0906125ff565b60405180910390fd5b610bde336004600085815260200190815260200160002061140e90919063ffffffff16565b610c1157610c07336004600085815260200190815260200160002061113f90919063ffffffff16565b610c1057600080fd5b5b7fc53e300da4fe7bad9553037bb567acec8109a294de1f832291c2d814dfc262c433604051610c4091906124ae565b60405180910390a160019050919050565b60038181548110610c5e57fe5b906000526020600020016000915090505481565b6000610c926001600084815260200190815260200160002060000161173a565b9050919050565b610cc06001600084815260200190815260200160002060020154610cbb61116f565b6107d1565b610cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf69061257f565b60405180910390fd5b610d09828261120b565b5050565b604051610d199061247e565b604051809103902081565b6000600260009054906101000a900460ff1615610d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6d906125bf565b60405180910390fd5b610d9b826004600086815260200190815260200160002061140e90919063ffffffff16565b905092915050565b610dab61116f565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e309061261f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea09061255f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260009054906101000a900460ff1615610fb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb0906125bf565b60405180910390fd5b6000801b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d8bff5a5336040518263ffffffff1660e01b815260040161101691906124ae565b60206040518083038186803b15801561102e57600080fd5b505afa158015611042573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110669190611d16565b14156110a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109e9061259f565b60405180910390fd5b6110cc336004600085815260200190815260200160002061140e90919063ffffffff16565b6110ff576110f5336004600085815260200190815260200160002061113f90919063ffffffff16565b6110fe57600080fd5b5b7f359eefdc83d4cbeabeed5ea68cd9213056f02a7317e55e1310612edc535d5ae93360405161112e91906124ae565b60405180910390a160019050919050565b6000611167836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61174f565b905092915050565b600033905090565b61119f816001600085815260200190815260200160002060000161113f90919063ffffffff16565b15611207576111ac61116f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b61123381600160008581526020019081526020016000206000016117bf90919063ffffffff16565b1561129b5761124061116f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600260009054906101000a900460ff166112ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e59061253f565b60405180910390fd5b6000600260006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61133261116f565b60405161133f91906124ae565b60405180910390a1565b600260009054906101000a900460ff1615611399576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611390906125bf565b60405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113dd61116f565b6040516113ea91906124ae565b60405180910390a1565b600061140383600001836117ef565b60001c905092915050565b6000611436836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61185c565b905092915050565b6000600260009054906101000a900460ff1615611490576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611487906125bf565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630bebac86846040518263ffffffff1660e01b81526004016114eb9190612493565b60206040518083038186803b15801561150357600080fd5b505afa158015611517573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153b9190611e0a565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166320aba08b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115a557600080fd5b505afa1580156115b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115dd9190611e0a565b4211611686577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c92aecc46040518163ffffffff1660e01b815260040160206040518083038186803b15801561164957600080fd5b505afa15801561165d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116819190611e0a565b611725565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639f678cca6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116ec57600080fd5b505afa158015611700573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117249190611e0a565b5b9050611731828261187f565b92505050919050565b600061174882600001611901565b9050919050565b600061175b838361185c565b6117b45782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506117b9565b600090505b92915050565b60006117e7836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611912565b905092915050565b60008183600001805490501161183a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611831906124ff565b60405180910390fd5b82600001828154811061184957fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b6000600260009054906101000a900460ff16156118d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c8906125bf565b60405180910390fd5b6b033b2e3c9fd0803ce80000006118f183856119fa90919063ffffffff16565b816118f857fe5b04905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020549050600081146119ee576000600182039050600060018660000180549050039050600086600001828154811061195d57fe5b906000526020600020015490508087600001848154811061197a57fe5b90600052602060002001819055506001830187600101600083815260200190815260200160002081905550866000018054806119b257fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506119f4565b60009150505b92915050565b600080831415611a0d5760009050611a64565b6000828402905082848281611a1e57fe5b0414611a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a56906125df565b60405180910390fd5b809150505b92915050565b828054828255906000526020600020908101928215611aa6579160200282015b82811115611aa5578235825591602001919060010190611a8a565b5b509050611ab39190611ab7565b5090565b611ad991905b80821115611ad5576000816000905550600101611abd565b5090565b90565b600081359050611aeb816127bd565b92915050565b600081519050611b00816127bd565b92915050565b60008083601f840112611b1857600080fd5b8235905067ffffffffffffffff811115611b3157600080fd5b602083019150836020820283011115611b4957600080fd5b9250929050565b600081359050611b5f816127d4565b92915050565b600081519050611b74816127d4565b92915050565b60006101008284031215611b8d57600080fd5b611b986101006126da565b90506000611ba884828501611c55565b6000830152506020611bbc84828501611c55565b6020830152506040611bd084828501611af1565b6040830152506060611be484828501611c6a565b6060830152506080611bf884828501611c6a565b60808301525060a0611c0c84828501611af1565b60a08301525060c0611c2084828501611af1565b60c08301525060e0611c3484828501611c55565b60e08301525092915050565b600081359050611c4f816127eb565b92915050565b600081519050611c64816127eb565b92915050565b600081519050611c7981612802565b92915050565b600060208284031215611c9157600080fd5b6000611c9f84828501611adc565b91505092915050565b60008060208385031215611cbb57600080fd5b600083013567ffffffffffffffff811115611cd557600080fd5b611ce185828601611b06565b92509250509250929050565b600060208284031215611cff57600080fd5b6000611d0d84828501611b50565b91505092915050565b600060208284031215611d2857600080fd5b6000611d3684828501611b65565b91505092915050565b60008060408385031215611d5257600080fd5b6000611d6085828601611b50565b9250506020611d7185828601611adc565b9150509250929050565b60008060408385031215611d8e57600080fd5b6000611d9c85828601611b50565b9250506020611dad85828601611c40565b9150509250929050565b60006101008284031215611dca57600080fd5b6000611dd884828501611b7a565b91505092915050565b600060208284031215611df357600080fd5b6000611e0184828501611c40565b91505092915050565b600060208284031215611e1c57600080fd5b6000611e2a84828501611c55565b91505092915050565b60008060408385031215611e4657600080fd5b6000611e5485828601611c40565b9250506020611e6585828601611adc565b9150509250929050565b60008060408385031215611e8257600080fd5b6000611e9085828601611c40565b9250506020611ea185828601611c40565b9150509250929050565b611eb481612787565b82525050565b611ec381612723565b82525050565b611ed281612735565b82525050565b611ee181612741565b82525050565b6000611ef4602283612707565b91507f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e60008301527f64730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f5a602f83612707565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f206772616e7400000000000000000000000000000000006020830152604082019050919050565b6000611fc0601483612707565b91507f5061757361626c653a206e6f74207061757365640000000000000000000000006000830152602082019050919050565b6000612000602683612707565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612066603083612707565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f207265766f6b65000000000000000000000000000000006020830152604082019050919050565b60006120cc600b83612718565b91507f5041555345525f524f4c450000000000000000000000000000000000000000006000830152600b82019050919050565b600061210c602983612707565b91507f43616c6c6572206973206e6f7420766f74696e6720696e206120476f7665726e60008301527f616e636520506f6c6c00000000000000000000000000000000000000000000006020830152604082019050919050565b6000612172601083612707565b91507f5061757361626c653a20706175736564000000000000000000000000000000006000830152602082019050919050565b60006121b2602183612707565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612218603483612707565b91507f43616c6c657220686173206e6f7420616363727565642031206f72206d6f726560008301527f2044616920696e746572657374206f6e20506f740000000000000000000000006020830152604082019050919050565b600061227e602083612707565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006122be602b83612707565b91507f4d616b65724261646765733a206d75737420686176652070617573657220726f60008301527f6c6520746f2070617573650000000000000000000000000000000000000000006020830152604082019050919050565b6000612324602d83612707565b91507f4d616b65724261646765733a206d75737420686176652070617573657220726f60008301527f6c6520746f20756e7061757365000000000000000000000000000000000000006020830152604082019050919050565b600061238a604783612707565b91507f43616c6c6572206973206e6f742074686520686967682062696464657220696e60008301527f207468652063757272656e742042696420696e20436f6c6c61746572616c204160208301527f756374696f6e73000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000612416602f83612707565b91507f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008301527f20726f6c657320666f722073656c6600000000000000000000000000000000006020830152604082019050919050565b6124788161276b565b82525050565b6000612489826120bf565b9150819050919050565b60006020820190506124a86000830184611eba565b92915050565b60006020820190506124c36000830184611eab565b92915050565b60006020820190506124de6000830184611ec9565b92915050565b60006020820190506124f96000830184611ed8565b92915050565b6000602082019050818103600083015261251881611ee7565b9050919050565b6000602082019050818103600083015261253881611f4d565b9050919050565b6000602082019050818103600083015261255881611fb3565b9050919050565b6000602082019050818103600083015261257881611ff3565b9050919050565b6000602082019050818103600083015261259881612059565b9050919050565b600060208201905081810360008301526125b8816120ff565b9050919050565b600060208201905081810360008301526125d881612165565b9050919050565b600060208201905081810360008301526125f8816121a5565b9050919050565b600060208201905081810360008301526126188161220b565b9050919050565b6000602082019050818103600083015261263881612271565b9050919050565b60006020820190508181036000830152612658816122b1565b9050919050565b6000602082019050818103600083015261267881612317565b9050919050565b600060208201905081810360008301526126988161237d565b9050919050565b600060208201905081810360008301526126b881612409565b9050919050565b60006020820190506126d4600083018461246f565b92915050565b6000604051905081810181811067ffffffffffffffff821117156126fd57600080fd5b8060405250919050565b600082825260208201905092915050565b600081905092915050565b600061272e8261274b565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600065ffffffffffff82169050919050565b600061279282612799565b9050919050565b60006127a4826127ab565b9050919050565b60006127b68261274b565b9050919050565b6127c681612723565b81146127d157600080fd5b50565b6127dd81612741565b81146127e857600080fd5b50565b6127f48161276b565b81146127ff57600080fd5b50565b61280b81612775565b811461281657600080fd5b5056fea26469706673582212201f634c5f17f0f9d8dda0475ae329a7e0906551b6890cfc91520ec2c4a380625764736f6c634300060a0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061013b5760003560e01c80639c1c94fd116100b8578063ca15c8731161007c578063ca15c87314610341578063d547741f14610371578063e63ab1e91461038d578063ebfa62b9146103ab578063f2fde38b146103db578063f36618a6146103f75761013c565b80639c1c94fd14610263578063a217fddf14610293578063aca57703146102b1578063baf2868b146102e1578063c2b40ae4146103115761013c565b8063715018a6116100ff578063715018a6146101d15780638456cb59146101db5780638da5cb5b146101e55780639010d07c1461020357806391d14854146102335761013c565b8063248a9ca3146101415780632f2ff15d1461017157806336568abe1461018d5780633f4ba83a146101a95780635c975abb146101b35761013c565b5b600080fd5b61015b60048036038101906101569190611ced565b610427565b60405161016891906124e4565b60405180910390f35b61018b60048036038101906101869190611d3f565b610447565b005b6101a760048036038101906101a29190611d3f565b6104bb565b005b6101b161053e565b005b6101bb6105a4565b6040516101c891906124c9565b60405180910390f35b6101d96105bb565b005b6101e3610710565b005b6101ed610776565b6040516101fa9190612493565b60405180910390f35b61021d60048036038101906102189190611d7b565b61079f565b60405161022a9190612493565b60405180910390f35b61024d60048036038101906102489190611d3f565b6107d1565b60405161025a91906124c9565b60405180910390f35b61027d60048036038101906102789190611e6f565b610803565b60405161028a91906124c9565b60405180910390f35b61029b610a09565b6040516102a891906124e4565b60405180910390f35b6102cb60048036038101906102c69190611ca8565b610a10565b6040516102d891906124c9565b60405180910390f35b6102fb60048036038101906102f69190611de1565b610b14565b60405161030891906124c9565b60405180910390f35b61032b60048036038101906103269190611de1565b610c51565b60405161033891906124e4565b60405180910390f35b61035b60048036038101906103569190611ced565b610c72565b60405161036891906126bf565b60405180910390f35b61038b60048036038101906103869190611d3f565b610c99565b005b610395610d0d565b6040516103a291906124e4565b60405180910390f35b6103c560048036038101906103c09190611e33565b610d24565b6040516103d291906124c9565b60405180910390f35b6103f560048036038101906103f09190611c7f565b610da3565b005b610411600480360381019061040c9190611de1565b610f67565b60405161041e91906124c9565b60405180910390f35b600060016000838152602001908152602001600020600201549050919050565b61046e600160008481526020019081526020016000206002015461046961116f565b6107d1565b6104ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a49061251f565b60405180910390fd5b6104b78282611177565b5050565b6104c361116f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610530576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105279061269f565b60405180910390fd5b61053a828261120b565b5050565b61055b60405161054d9061247e565b6040518091039020336107d1565b61059a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105919061265f565b60405180910390fd5b6105a261129f565b565b6000600260009054906101000a900460ff16905090565b6105c361116f565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610651576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106489061261f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61072d60405161071f9061247e565b6040518091039020336107d1565b61076c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107639061263f565b60405180910390fd5b610774611349565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006107c982600160008681526020019081526020016000206000016113f490919063ffffffff16565b905092915050565b60006107fb826001600086815260200190815260200160002060000161140e90919063ffffffff16565b905092915050565b6000600260009054906101000a900460ff1615610855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084c906125bf565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634423c5f1846040518263ffffffff1660e01b81526004016108c591906126bf565b6101006040518083038186803b1580156108de57600080fd5b505afa1580156108f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109169190611db7565b6040015173ffffffffffffffffffffffffffffffffffffffff1614610970576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109679061267f565b60405180910390fd5b610995336004600086815260200190815260200160002061140e90919063ffffffff16565b6109c8576109be336004600086815260200190815260200160002061113f90919063ffffffff16565b6109c757600080fd5b5b7f430bb0ab986389293d8f0855931d73d3e3bdc06890eb3e780550c98a7582a7ef336040516109f791906124ae565b60405180910390a16001905092915050565b6000801b81565b6000610a1a61116f565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9f9061261f565b60405180910390fd5b600260009054906101000a900460ff1615610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef906125bf565b60405180910390fd5b828260039190610b09929190611a6a565b506001905092915050565b6000600260009054906101000a900460ff1615610b66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5d906125bf565b60405180910390fd5b670de0b6b3a7640000610b783361143e565b1015610bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb0906125ff565b60405180910390fd5b610bde336004600085815260200190815260200160002061140e90919063ffffffff16565b610c1157610c07336004600085815260200190815260200160002061113f90919063ffffffff16565b610c1057600080fd5b5b7fc53e300da4fe7bad9553037bb567acec8109a294de1f832291c2d814dfc262c433604051610c4091906124ae565b60405180910390a160019050919050565b60038181548110610c5e57fe5b906000526020600020016000915090505481565b6000610c926001600084815260200190815260200160002060000161173a565b9050919050565b610cc06001600084815260200190815260200160002060020154610cbb61116f565b6107d1565b610cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf69061257f565b60405180910390fd5b610d09828261120b565b5050565b604051610d199061247e565b604051809103902081565b6000600260009054906101000a900460ff1615610d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6d906125bf565b60405180910390fd5b610d9b826004600086815260200190815260200160002061140e90919063ffffffff16565b905092915050565b610dab61116f565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e309061261f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea09061255f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260009054906101000a900460ff1615610fb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb0906125bf565b60405180910390fd5b6000801b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d8bff5a5336040518263ffffffff1660e01b815260040161101691906124ae565b60206040518083038186803b15801561102e57600080fd5b505afa158015611042573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110669190611d16565b14156110a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109e9061259f565b60405180910390fd5b6110cc336004600085815260200190815260200160002061140e90919063ffffffff16565b6110ff576110f5336004600085815260200190815260200160002061113f90919063ffffffff16565b6110fe57600080fd5b5b7f359eefdc83d4cbeabeed5ea68cd9213056f02a7317e55e1310612edc535d5ae93360405161112e91906124ae565b60405180910390a160019050919050565b6000611167836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61174f565b905092915050565b600033905090565b61119f816001600085815260200190815260200160002060000161113f90919063ffffffff16565b15611207576111ac61116f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b61123381600160008581526020019081526020016000206000016117bf90919063ffffffff16565b1561129b5761124061116f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600260009054906101000a900460ff166112ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e59061253f565b60405180910390fd5b6000600260006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61133261116f565b60405161133f91906124ae565b60405180910390a1565b600260009054906101000a900460ff1615611399576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611390906125bf565b60405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113dd61116f565b6040516113ea91906124ae565b60405180910390a1565b600061140383600001836117ef565b60001c905092915050565b6000611436836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61185c565b905092915050565b6000600260009054906101000a900460ff1615611490576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611487906125bf565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630bebac86846040518263ffffffff1660e01b81526004016114eb9190612493565b60206040518083038186803b15801561150357600080fd5b505afa158015611517573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153b9190611e0a565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166320aba08b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115a557600080fd5b505afa1580156115b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115dd9190611e0a565b4211611686577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c92aecc46040518163ffffffff1660e01b815260040160206040518083038186803b15801561164957600080fd5b505afa15801561165d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116819190611e0a565b611725565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639f678cca6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116ec57600080fd5b505afa158015611700573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117249190611e0a565b5b9050611731828261187f565b92505050919050565b600061174882600001611901565b9050919050565b600061175b838361185c565b6117b45782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506117b9565b600090505b92915050565b60006117e7836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611912565b905092915050565b60008183600001805490501161183a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611831906124ff565b60405180910390fd5b82600001828154811061184957fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b6000600260009054906101000a900460ff16156118d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c8906125bf565b60405180910390fd5b6b033b2e3c9fd0803ce80000006118f183856119fa90919063ffffffff16565b816118f857fe5b04905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020549050600081146119ee576000600182039050600060018660000180549050039050600086600001828154811061195d57fe5b906000526020600020015490508087600001848154811061197a57fe5b90600052602060002001819055506001830187600101600083815260200190815260200160002081905550866000018054806119b257fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506119f4565b60009150505b92915050565b600080831415611a0d5760009050611a64565b6000828402905082848281611a1e57fe5b0414611a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a56906125df565b60405180910390fd5b809150505b92915050565b828054828255906000526020600020908101928215611aa6579160200282015b82811115611aa5578235825591602001919060010190611a8a565b5b509050611ab39190611ab7565b5090565b611ad991905b80821115611ad5576000816000905550600101611abd565b5090565b90565b600081359050611aeb816127bd565b92915050565b600081519050611b00816127bd565b92915050565b60008083601f840112611b1857600080fd5b8235905067ffffffffffffffff811115611b3157600080fd5b602083019150836020820283011115611b4957600080fd5b9250929050565b600081359050611b5f816127d4565b92915050565b600081519050611b74816127d4565b92915050565b60006101008284031215611b8d57600080fd5b611b986101006126da565b90506000611ba884828501611c55565b6000830152506020611bbc84828501611c55565b6020830152506040611bd084828501611af1565b6040830152506060611be484828501611c6a565b6060830152506080611bf884828501611c6a565b60808301525060a0611c0c84828501611af1565b60a08301525060c0611c2084828501611af1565b60c08301525060e0611c3484828501611c55565b60e08301525092915050565b600081359050611c4f816127eb565b92915050565b600081519050611c64816127eb565b92915050565b600081519050611c7981612802565b92915050565b600060208284031215611c9157600080fd5b6000611c9f84828501611adc565b91505092915050565b60008060208385031215611cbb57600080fd5b600083013567ffffffffffffffff811115611cd557600080fd5b611ce185828601611b06565b92509250509250929050565b600060208284031215611cff57600080fd5b6000611d0d84828501611b50565b91505092915050565b600060208284031215611d2857600080fd5b6000611d3684828501611b65565b91505092915050565b60008060408385031215611d5257600080fd5b6000611d6085828601611b50565b9250506020611d7185828601611adc565b9150509250929050565b60008060408385031215611d8e57600080fd5b6000611d9c85828601611b50565b9250506020611dad85828601611c40565b9150509250929050565b60006101008284031215611dca57600080fd5b6000611dd884828501611b7a565b91505092915050565b600060208284031215611df357600080fd5b6000611e0184828501611c40565b91505092915050565b600060208284031215611e1c57600080fd5b6000611e2a84828501611c55565b91505092915050565b60008060408385031215611e4657600080fd5b6000611e5485828601611c40565b9250506020611e6585828601611adc565b9150509250929050565b60008060408385031215611e8257600080fd5b6000611e9085828601611c40565b9250506020611ea185828601611c40565b9150509250929050565b611eb481612787565b82525050565b611ec381612723565b82525050565b611ed281612735565b82525050565b611ee181612741565b82525050565b6000611ef4602283612707565b91507f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e60008301527f64730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f5a602f83612707565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f206772616e7400000000000000000000000000000000006020830152604082019050919050565b6000611fc0601483612707565b91507f5061757361626c653a206e6f74207061757365640000000000000000000000006000830152602082019050919050565b6000612000602683612707565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612066603083612707565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f207265766f6b65000000000000000000000000000000006020830152604082019050919050565b60006120cc600b83612718565b91507f5041555345525f524f4c450000000000000000000000000000000000000000006000830152600b82019050919050565b600061210c602983612707565b91507f43616c6c6572206973206e6f7420766f74696e6720696e206120476f7665726e60008301527f616e636520506f6c6c00000000000000000000000000000000000000000000006020830152604082019050919050565b6000612172601083612707565b91507f5061757361626c653a20706175736564000000000000000000000000000000006000830152602082019050919050565b60006121b2602183612707565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612218603483612707565b91507f43616c6c657220686173206e6f7420616363727565642031206f72206d6f726560008301527f2044616920696e746572657374206f6e20506f740000000000000000000000006020830152604082019050919050565b600061227e602083612707565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006122be602b83612707565b91507f4d616b65724261646765733a206d75737420686176652070617573657220726f60008301527f6c6520746f2070617573650000000000000000000000000000000000000000006020830152604082019050919050565b6000612324602d83612707565b91507f4d616b65724261646765733a206d75737420686176652070617573657220726f60008301527f6c6520746f20756e7061757365000000000000000000000000000000000000006020830152604082019050919050565b600061238a604783612707565b91507f43616c6c6572206973206e6f742074686520686967682062696464657220696e60008301527f207468652063757272656e742042696420696e20436f6c6c61746572616c204160208301527f756374696f6e73000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000612416602f83612707565b91507f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008301527f20726f6c657320666f722073656c6600000000000000000000000000000000006020830152604082019050919050565b6124788161276b565b82525050565b6000612489826120bf565b9150819050919050565b60006020820190506124a86000830184611eba565b92915050565b60006020820190506124c36000830184611eab565b92915050565b60006020820190506124de6000830184611ec9565b92915050565b60006020820190506124f96000830184611ed8565b92915050565b6000602082019050818103600083015261251881611ee7565b9050919050565b6000602082019050818103600083015261253881611f4d565b9050919050565b6000602082019050818103600083015261255881611fb3565b9050919050565b6000602082019050818103600083015261257881611ff3565b9050919050565b6000602082019050818103600083015261259881612059565b9050919050565b600060208201905081810360008301526125b8816120ff565b9050919050565b600060208201905081810360008301526125d881612165565b9050919050565b600060208201905081810360008301526125f8816121a5565b9050919050565b600060208201905081810360008301526126188161220b565b9050919050565b6000602082019050818103600083015261263881612271565b9050919050565b60006020820190508181036000830152612658816122b1565b9050919050565b6000602082019050818103600083015261267881612317565b9050919050565b600060208201905081810360008301526126988161237d565b9050919050565b600060208201905081810360008301526126b881612409565b9050919050565b60006020820190506126d4600083018461246f565b92915050565b6000604051905081810181811067ffffffffffffffff821117156126fd57600080fd5b8060405250919050565b600082825260208201905092915050565b600081905092915050565b600061272e8261274b565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600065ffffffffffff82169050919050565b600061279282612799565b9050919050565b60006127a4826127ab565b9050919050565b60006127b68261274b565b9050919050565b6127c681612723565b81146127d157600080fd5b50565b6127dd81612741565b81146127e857600080fd5b50565b6127f48161276b565b81146127ff57600080fd5b50565b61280b81612775565b811461281657600080fd5b5056fea26469706673582212201f634c5f17f0f9d8dda0475ae329a7e0906551b6890cfc91520ec2c4a380625764736f6c634300060a0033", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pot_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"chief_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"flipper_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"DSChiefChecked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"FlipperChecked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"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\":\"guy\",\"type\":\"address\"}],\"name\":\"PotChecked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAUSER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"}],\"name\":\"chiefChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bidId\",\"type\":\"uint256\"}],\"name\":\"flipperChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"}],\"name\":\"potChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"roots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"rootHashes\",\"type\":\"bytes32[]\"}],\"name\":\"setRootHashes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"PotChecked(address)\":{\"details\":\"Events\"}},\"kind\":\"dev\",\"methods\":{\"chiefChallenge(uint256)\":{\"details\":\"Keeps track of the address of the caller if successful\",\"returns\":{\"_0\":\"True if the caller successfully checked for activity on DSChief\"}},\"flipperChallenge(uint256,uint256)\":{\"details\":\"Keeps track of the address of the caller if successfulguy, high bidder\",\"returns\":{\"_0\":\"True if the caller successfully checked for activity on Flipper\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"details\":\"the caller must have the 'PAUSER_ROLE'\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"potChallenge(uint256)\":{\"details\":\"Keeps track of the address of the caller if successful\",\"returns\":{\"_0\":\"True if the caller successfully checked for activity on Pot\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"setRootHashes(bytes32[])\":{\"details\":\"Called by owner to update roots for different address batches by templateId\",\"params\":{\"rootHashes\":\"Root hashes of the Merkle Trees by templateId\"},\"returns\":{\"_0\":\"True if successfully updated\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"details\":\"the caller must have the 'PAUSER_ROLE'\"},\"verify(uint256,address)\":{\"details\":\"Verify if the address of guy exists\",\"params\":{\"guy\":\"Address to verify\"},\"returns\":{\"_0\":\"True if guy is a redeemer\"}}},\"stateVariables\":{\"RAY\":{\"details\":\"Math\"},\"pot\":{\"details\":\"Data\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"chiefChallenge(uint256)\":{\"notice\":\"DSChief Challenge\"},\"flipperChallenge(uint256,uint256)\":{\"notice\":\"Flipper Challenge\"},\"pause()\":{\"notice\":\"Pause all the functions\"},\"potChallenge(uint256)\":{\"notice\":\"Pot Challenge\"},\"setRootHashes(bytes32[])\":{\"notice\":\"Set Merkle Tree Root Hashes array\"},\"unpause()\":{\"notice\":\"Unpause all the functions\"},\"verify(uint256,address)\":{\"notice\":\"Check if guy is a redeemer\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/sencha/maker-badges/contracts/MakerBadges.sol\":\"MakerBadges\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/sencha/maker-badges/contracts/MakerBadges.sol\":{\"keccak256\":\"0x6c6ddbe292dbaed58b0aed79aea5edc21e6e3503f6988e50ffcb339050f3b010\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://66c4800e34af2d3ac348a783f351aa3f83f9d96389d774719efad2759bb8ccba\",\"dweb:/ipfs/QmZcMk7ehVeMvdifFd3bWfUeL4qXD5oMm1w1LwfttxmASr\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x92f7900d382761c7faefeaced81c6b4f1aae909ed0551803bfe8f27101956360\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://407c0864143968542e5cf5aa7556916d2cf292b201e3dadb65662e9a3aa24187\",\"dweb:/ipfs/QmSnXzYAUaGLGr7uofRbgQraTJvatbjQLBPhyYiMd18oUJ\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c\",\"dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe\"]}},\"version\":1}", + "bytecode": "0x60e06040523480156200001157600080fd5b5060405162002ec738038062002ec7833981810160405281019062000037919062000417565b6000620000496200024060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000600260006101000a81548160ff021916908315150217905550620001266000801b6200011a6200024860201b60201c565b6200027160201b60201c565b6200015c604051620001389062000508565b6040518091039020620001506200024860201b60201c565b6200027160201b60201c565b620001926040516200016e90620004f1565b6040518091039020620001866200024860201b60201c565b6200027160201b60201c565b8273ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b8152505050505062000578565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200028382826200028760201b60201c565b5050565b620002b681600160008581526020019081526020016000206000016200032b60201b620011451790919060201c565b156200032757620002cc6200024060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006200035b836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6200036360201b60201c565b905092915050565b6000620003778383620003dd60201b60201c565b620003d2578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050620003d7565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b60008151905062000411816200055e565b92915050565b6000806000606084860312156200042d57600080fd5b60006200043d8682870162000400565b9350506020620004508682870162000400565b9250506040620004638682870162000400565b9150509250925092565b60006200047c600b836200051f565b91507f5041555345525f524f4c450000000000000000000000000000000000000000006000830152600b82019050919050565b6000620004be600a836200051f565b91507f41444d494e5f524f4c45000000000000000000000000000000000000000000006000830152600a82019050919050565b6000620004fe826200046d565b9150819050919050565b60006200051582620004af565b9150819050919050565b600081905092915050565b600062000537826200053e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b62000569816200052a565b81146200057557600080fd5b50565b60805160601c60a05160601c60c05160601c61290a620005bd600039806108ae525080610fc552508061149a528061154752806115eb528061168e525061290a6000f3fe608060405234801561001057600080fd5b50600436106101465760003560e01c80639c1c94fd116100b8578063ca15c8731161007c578063ca15c8731461036a578063d547741f1461039a578063e63ab1e9146103b6578063ebfa62b9146103d4578063f2fde38b14610404578063f36618a61461042057610147565b80639c1c94fd1461028c578063a217fddf146102bc578063aca57703146102da578063baf2868b1461030a578063c2b40ae41461033a57610147565b8063715018a61161010a578063715018a6146101dc57806375b238fc146101e65780638456cb59146102045780638da5cb5b1461020e5780639010d07c1461022c57806391d148541461025c57610147565b8063248a9ca31461014c5780632f2ff15d1461017c57806336568abe146101985780633f4ba83a146101b45780635c975abb146101be57610147565b5b600080fd5b61016660048036038101906101619190611cf3565b610450565b604051610173919061257f565b60405180910390f35b61019660048036038101906101919190611d45565b610470565b005b6101b260048036038101906101ad9190611d45565b6104e4565b005b6101bc610567565b005b6101c66105cd565b6040516101d39190612564565b60405180910390f35b6101e46105e4565b005b6101ee610739565b6040516101fb919061257f565b60405180910390f35b61020c610750565b005b6102166107b6565b604051610223919061252e565b60405180910390f35b61024660048036038101906102419190611d81565b6107df565b604051610253919061252e565b60405180910390f35b61027660048036038101906102719190611d45565b610811565b6040516102839190612564565b60405180910390f35b6102a660048036038101906102a19190611e75565b610843565b6040516102b39190612564565b60405180910390f35b6102c4610a49565b6040516102d1919061257f565b60405180910390f35b6102f460048036038101906102ef9190611cae565b610a50565b6040516103019190612564565b60405180910390f35b610324600480360381019061031f9190611de7565b610b1a565b6040516103319190612564565b60405180910390f35b610354600480360381019061034f9190611de7565b610c57565b604051610361919061257f565b60405180910390f35b610384600480360381019061037f9190611cf3565b610c78565b604051610391919061277a565b60405180910390f35b6103b460048036038101906103af9190611d45565b610c9f565b005b6103be610d13565b6040516103cb919061257f565b60405180910390f35b6103ee60048036038101906103e99190611e39565b610d2a565b6040516103fb9190612564565b60405180910390f35b61041e60048036038101906104199190611c85565b610da9565b005b61043a60048036038101906104359190611de7565b610f6d565b6040516104479190612564565b60405180910390f35b600060016000838152602001908152602001600020600201549050919050565b6104976001600084815260200190815260200160002060020154610492611175565b610811565b6104d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104cd906125ba565b60405180910390fd5b6104e0828261117d565b5050565b6104ec611175565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610559576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105509061275a565b60405180910390fd5b6105638282611211565b5050565b61058460405161057690612504565b604051809103902033610811565b6105c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ba9061271a565b60405180910390fd5b6105cb6112a5565b565b6000600260009054906101000a900460ff16905090565b6105ec611175565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461067a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610671906126ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60405161074590612519565b604051809103902081565b61076d60405161075f90612504565b604051809103902033610811565b6107ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a3906126fa565b60405180910390fd5b6107b461134f565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600061080982600160008681526020019081526020016000206000016113fa90919063ffffffff16565b905092915050565b600061083b826001600086815260200190815260200160002060000161141490919063ffffffff16565b905092915050565b6000600260009054906101000a900460ff1615610895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088c9061265a565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634423c5f1846040518263ffffffff1660e01b8152600401610905919061277a565b6101006040518083038186803b15801561091e57600080fd5b505afa158015610932573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109569190611dbd565b6040015173ffffffffffffffffffffffffffffffffffffffff16146109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a79061273a565b60405180910390fd5b6109d5336004600086815260200190815260200160002061141490919063ffffffff16565b610a08576109fe336004600086815260200190815260200160002061114590919063ffffffff16565b610a0757600080fd5b5b7f430bb0ab986389293d8f0855931d73d3e3bdc06890eb3e780550c98a7582a7ef33604051610a379190612549565b60405180910390a16001905092915050565b6000801b81565b6000610a6f604051610a6190612519565b604051809103902033610811565b610aae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa5906126da565b60405180910390fd5b600260009054906101000a900460ff1615610afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af59061265a565b60405180910390fd5b828260039190610b0f929190611a70565b506001905092915050565b6000600260009054906101000a900460ff1615610b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b639061265a565b60405180910390fd5b670de0b6b3a7640000610b7e33611444565b1015610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb69061269a565b60405180910390fd5b610be4336004600085815260200190815260200160002061141490919063ffffffff16565b610c1757610c0d336004600085815260200190815260200160002061114590919063ffffffff16565b610c1657600080fd5b5b7fc53e300da4fe7bad9553037bb567acec8109a294de1f832291c2d814dfc262c433604051610c469190612549565b60405180910390a160019050919050565b60038181548110610c6457fe5b906000526020600020016000915090505481565b6000610c9860016000848152602001908152602001600020600001611740565b9050919050565b610cc66001600084815260200190815260200160002060020154610cc1611175565b610811565b610d05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfc9061261a565b60405180910390fd5b610d0f8282611211565b5050565b604051610d1f90612504565b604051809103902081565b6000600260009054906101000a900460ff1615610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061265a565b60405180910390fd5b610da1826004600086815260200190815260200160002061141490919063ffffffff16565b905092915050565b610db1611175565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e36906126ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610eaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea6906125fa565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260009054906101000a900460ff1615610fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb69061265a565b60405180910390fd5b6000801b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d8bff5a5336040518263ffffffff1660e01b815260040161101c9190612549565b60206040518083038186803b15801561103457600080fd5b505afa158015611048573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106c9190611d1c565b14156110ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a49061263a565b60405180910390fd5b6110d2336004600085815260200190815260200160002061141490919063ffffffff16565b611105576110fb336004600085815260200190815260200160002061114590919063ffffffff16565b61110457600080fd5b5b7f359eefdc83d4cbeabeed5ea68cd9213056f02a7317e55e1310612edc535d5ae9336040516111349190612549565b60405180910390a160019050919050565b600061116d836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611755565b905092915050565b600033905090565b6111a5816001600085815260200190815260200160002060000161114590919063ffffffff16565b1561120d576111b2611175565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b61123981600160008581526020019081526020016000206000016117c590919063ffffffff16565b156112a157611246611175565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600260009054906101000a900460ff166112f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112eb906125da565b60405180910390fd5b6000600260006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611338611175565b6040516113459190612549565b60405180910390a1565b600260009054906101000a900460ff161561139f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113969061265a565b60405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113e3611175565b6040516113f09190612549565b60405180910390a1565b600061140983600001836117f5565b60001c905092915050565b600061143c836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611862565b905092915050565b6000600260009054906101000a900460ff1615611496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148d9061265a565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630bebac86846040518263ffffffff1660e01b81526004016114f1919061252e565b60206040518083038186803b15801561150957600080fd5b505afa15801561151d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115419190611e10565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166320aba08b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115ab57600080fd5b505afa1580156115bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e39190611e10565b421161168c577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c92aecc46040518163ffffffff1660e01b815260040160206040518083038186803b15801561164f57600080fd5b505afa158015611663573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116879190611e10565b61172b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639f678cca6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116f257600080fd5b505afa158015611706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172a9190611e10565b5b90506117378282611885565b92505050919050565b600061174e82600001611907565b9050919050565b60006117618383611862565b6117ba5782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506117bf565b600090505b92915050565b60006117ed836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611918565b905092915050565b600081836000018054905011611840576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118379061259a565b60405180910390fd5b82600001828154811061184f57fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b6000600260009054906101000a900460ff16156118d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ce9061265a565b60405180910390fd5b6b033b2e3c9fd0803ce80000006118f78385611a0090919063ffffffff16565b816118fe57fe5b04905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020549050600081146119f4576000600182039050600060018660000180549050039050600086600001828154811061196357fe5b906000526020600020015490508087600001848154811061198057fe5b90600052602060002001819055506001830187600101600083815260200190815260200160002081905550866000018054806119b857fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506119fa565b60009150505b92915050565b600080831415611a135760009050611a6a565b6000828402905082848281611a2457fe5b0414611a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5c9061267a565b60405180910390fd5b809150505b92915050565b828054828255906000526020600020908101928215611aac579160200282015b82811115611aab578235825591602001919060010190611a90565b5b509050611ab99190611abd565b5090565b611adf91905b80821115611adb576000816000905550600101611ac3565b5090565b90565b600081359050611af181612878565b92915050565b600081519050611b0681612878565b92915050565b60008083601f840112611b1e57600080fd5b8235905067ffffffffffffffff811115611b3757600080fd5b602083019150836020820283011115611b4f57600080fd5b9250929050565b600081359050611b658161288f565b92915050565b600081519050611b7a8161288f565b92915050565b60006101008284031215611b9357600080fd5b611b9e610100612795565b90506000611bae84828501611c5b565b6000830152506020611bc284828501611c5b565b6020830152506040611bd684828501611af7565b6040830152506060611bea84828501611c70565b6060830152506080611bfe84828501611c70565b60808301525060a0611c1284828501611af7565b60a08301525060c0611c2684828501611af7565b60c08301525060e0611c3a84828501611c5b565b60e08301525092915050565b600081359050611c55816128a6565b92915050565b600081519050611c6a816128a6565b92915050565b600081519050611c7f816128bd565b92915050565b600060208284031215611c9757600080fd5b6000611ca584828501611ae2565b91505092915050565b60008060208385031215611cc157600080fd5b600083013567ffffffffffffffff811115611cdb57600080fd5b611ce785828601611b0c565b92509250509250929050565b600060208284031215611d0557600080fd5b6000611d1384828501611b56565b91505092915050565b600060208284031215611d2e57600080fd5b6000611d3c84828501611b6b565b91505092915050565b60008060408385031215611d5857600080fd5b6000611d6685828601611b56565b9250506020611d7785828601611ae2565b9150509250929050565b60008060408385031215611d9457600080fd5b6000611da285828601611b56565b9250506020611db385828601611c46565b9150509250929050565b60006101008284031215611dd057600080fd5b6000611dde84828501611b80565b91505092915050565b600060208284031215611df957600080fd5b6000611e0784828501611c46565b91505092915050565b600060208284031215611e2257600080fd5b6000611e3084828501611c5b565b91505092915050565b60008060408385031215611e4c57600080fd5b6000611e5a85828601611c46565b9250506020611e6b85828601611ae2565b9150509250929050565b60008060408385031215611e8857600080fd5b6000611e9685828601611c46565b9250506020611ea785828601611c46565b9150509250929050565b611eba81612842565b82525050565b611ec9816127de565b82525050565b611ed8816127f0565b82525050565b611ee7816127fc565b82525050565b6000611efa6022836127c2565b91507f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e60008301527f64730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f60602f836127c2565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f206772616e7400000000000000000000000000000000006020830152604082019050919050565b6000611fc66014836127c2565b91507f5061757361626c653a206e6f74207061757365640000000000000000000000006000830152602082019050919050565b60006120066026836127c2565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061206c6030836127c2565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f207265766f6b65000000000000000000000000000000006020830152604082019050919050565b60006120d2602a836127c2565b91507f43616c6c6572206973206e6f7420766f74696e6720696e20616e20457865637560008301527f74697665205370656c6c000000000000000000000000000000000000000000006020830152604082019050919050565b6000612138600b836127d3565b91507f5041555345525f524f4c450000000000000000000000000000000000000000006000830152600b82019050919050565b60006121786010836127c2565b91507f5061757361626c653a20706175736564000000000000000000000000000000006000830152602082019050919050565b60006121b86021836127c2565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061221e6034836127c2565b91507f43616c6c657220686173206e6f7420616363727565642031206f72206d6f726560008301527f2044616920696e746572657374206f6e20506f740000000000000000000000006020830152604082019050919050565b60006122846020836127c2565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006122c4600a836127d3565b91507f41444d494e5f524f4c45000000000000000000000000000000000000000000006000830152600a82019050919050565b60006123046016836127c2565b91507f43616c6c6572206973206e6f7420616e2061646d696e000000000000000000006000830152602082019050919050565b6000612344602b836127c2565b91507f4d616b65724261646765733a206d75737420686176652070617573657220726f60008301527f6c6520746f2070617573650000000000000000000000000000000000000000006020830152604082019050919050565b60006123aa602d836127c2565b91507f4d616b65724261646765733a206d75737420686176652070617573657220726f60008301527f6c6520746f20756e7061757365000000000000000000000000000000000000006020830152604082019050919050565b60006124106047836127c2565b91507f43616c6c6572206973206e6f742074686520686967682062696464657220696e60008301527f207468652063757272656e742042696420696e20436f6c6c61746572616c204160208301527f756374696f6e73000000000000000000000000000000000000000000000000006040830152606082019050919050565b600061249c602f836127c2565b91507f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008301527f20726f6c657320666f722073656c6600000000000000000000000000000000006020830152604082019050919050565b6124fe81612826565b82525050565b600061250f8261212b565b9150819050919050565b6000612524826122b7565b9150819050919050565b60006020820190506125436000830184611ec0565b92915050565b600060208201905061255e6000830184611eb1565b92915050565b60006020820190506125796000830184611ecf565b92915050565b60006020820190506125946000830184611ede565b92915050565b600060208201905081810360008301526125b381611eed565b9050919050565b600060208201905081810360008301526125d381611f53565b9050919050565b600060208201905081810360008301526125f381611fb9565b9050919050565b6000602082019050818103600083015261261381611ff9565b9050919050565b600060208201905081810360008301526126338161205f565b9050919050565b60006020820190508181036000830152612653816120c5565b9050919050565b600060208201905081810360008301526126738161216b565b9050919050565b60006020820190508181036000830152612693816121ab565b9050919050565b600060208201905081810360008301526126b381612211565b9050919050565b600060208201905081810360008301526126d381612277565b9050919050565b600060208201905081810360008301526126f3816122f7565b9050919050565b6000602082019050818103600083015261271381612337565b9050919050565b600060208201905081810360008301526127338161239d565b9050919050565b6000602082019050818103600083015261275381612403565b9050919050565b600060208201905081810360008301526127738161248f565b9050919050565b600060208201905061278f60008301846124f5565b92915050565b6000604051905081810181811067ffffffffffffffff821117156127b857600080fd5b8060405250919050565b600082825260208201905092915050565b600081905092915050565b60006127e982612806565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600065ffffffffffff82169050919050565b600061284d82612854565b9050919050565b600061285f82612866565b9050919050565b600061287182612806565b9050919050565b612881816127de565b811461288c57600080fd5b50565b612898816127fc565b81146128a357600080fd5b50565b6128af81612826565b81146128ba57600080fd5b50565b6128c681612830565b81146128d157600080fd5b5056fea26469706673582212206f23ab304c101c028026de619ed8013008a59174061fbd0aa0cae313ab4be54564736f6c634300060b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101465760003560e01c80639c1c94fd116100b8578063ca15c8731161007c578063ca15c8731461036a578063d547741f1461039a578063e63ab1e9146103b6578063ebfa62b9146103d4578063f2fde38b14610404578063f36618a61461042057610147565b80639c1c94fd1461028c578063a217fddf146102bc578063aca57703146102da578063baf2868b1461030a578063c2b40ae41461033a57610147565b8063715018a61161010a578063715018a6146101dc57806375b238fc146101e65780638456cb59146102045780638da5cb5b1461020e5780639010d07c1461022c57806391d148541461025c57610147565b8063248a9ca31461014c5780632f2ff15d1461017c57806336568abe146101985780633f4ba83a146101b45780635c975abb146101be57610147565b5b600080fd5b61016660048036038101906101619190611cf3565b610450565b604051610173919061257f565b60405180910390f35b61019660048036038101906101919190611d45565b610470565b005b6101b260048036038101906101ad9190611d45565b6104e4565b005b6101bc610567565b005b6101c66105cd565b6040516101d39190612564565b60405180910390f35b6101e46105e4565b005b6101ee610739565b6040516101fb919061257f565b60405180910390f35b61020c610750565b005b6102166107b6565b604051610223919061252e565b60405180910390f35b61024660048036038101906102419190611d81565b6107df565b604051610253919061252e565b60405180910390f35b61027660048036038101906102719190611d45565b610811565b6040516102839190612564565b60405180910390f35b6102a660048036038101906102a19190611e75565b610843565b6040516102b39190612564565b60405180910390f35b6102c4610a49565b6040516102d1919061257f565b60405180910390f35b6102f460048036038101906102ef9190611cae565b610a50565b6040516103019190612564565b60405180910390f35b610324600480360381019061031f9190611de7565b610b1a565b6040516103319190612564565b60405180910390f35b610354600480360381019061034f9190611de7565b610c57565b604051610361919061257f565b60405180910390f35b610384600480360381019061037f9190611cf3565b610c78565b604051610391919061277a565b60405180910390f35b6103b460048036038101906103af9190611d45565b610c9f565b005b6103be610d13565b6040516103cb919061257f565b60405180910390f35b6103ee60048036038101906103e99190611e39565b610d2a565b6040516103fb9190612564565b60405180910390f35b61041e60048036038101906104199190611c85565b610da9565b005b61043a60048036038101906104359190611de7565b610f6d565b6040516104479190612564565b60405180910390f35b600060016000838152602001908152602001600020600201549050919050565b6104976001600084815260200190815260200160002060020154610492611175565b610811565b6104d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104cd906125ba565b60405180910390fd5b6104e0828261117d565b5050565b6104ec611175565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610559576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105509061275a565b60405180910390fd5b6105638282611211565b5050565b61058460405161057690612504565b604051809103902033610811565b6105c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ba9061271a565b60405180910390fd5b6105cb6112a5565b565b6000600260009054906101000a900460ff16905090565b6105ec611175565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461067a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610671906126ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60405161074590612519565b604051809103902081565b61076d60405161075f90612504565b604051809103902033610811565b6107ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a3906126fa565b60405180910390fd5b6107b461134f565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600061080982600160008681526020019081526020016000206000016113fa90919063ffffffff16565b905092915050565b600061083b826001600086815260200190815260200160002060000161141490919063ffffffff16565b905092915050565b6000600260009054906101000a900460ff1615610895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088c9061265a565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634423c5f1846040518263ffffffff1660e01b8152600401610905919061277a565b6101006040518083038186803b15801561091e57600080fd5b505afa158015610932573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109569190611dbd565b6040015173ffffffffffffffffffffffffffffffffffffffff16146109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a79061273a565b60405180910390fd5b6109d5336004600086815260200190815260200160002061141490919063ffffffff16565b610a08576109fe336004600086815260200190815260200160002061114590919063ffffffff16565b610a0757600080fd5b5b7f430bb0ab986389293d8f0855931d73d3e3bdc06890eb3e780550c98a7582a7ef33604051610a379190612549565b60405180910390a16001905092915050565b6000801b81565b6000610a6f604051610a6190612519565b604051809103902033610811565b610aae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa5906126da565b60405180910390fd5b600260009054906101000a900460ff1615610afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af59061265a565b60405180910390fd5b828260039190610b0f929190611a70565b506001905092915050565b6000600260009054906101000a900460ff1615610b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b639061265a565b60405180910390fd5b670de0b6b3a7640000610b7e33611444565b1015610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb69061269a565b60405180910390fd5b610be4336004600085815260200190815260200160002061141490919063ffffffff16565b610c1757610c0d336004600085815260200190815260200160002061114590919063ffffffff16565b610c1657600080fd5b5b7fc53e300da4fe7bad9553037bb567acec8109a294de1f832291c2d814dfc262c433604051610c469190612549565b60405180910390a160019050919050565b60038181548110610c6457fe5b906000526020600020016000915090505481565b6000610c9860016000848152602001908152602001600020600001611740565b9050919050565b610cc66001600084815260200190815260200160002060020154610cc1611175565b610811565b610d05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfc9061261a565b60405180910390fd5b610d0f8282611211565b5050565b604051610d1f90612504565b604051809103902081565b6000600260009054906101000a900460ff1615610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061265a565b60405180910390fd5b610da1826004600086815260200190815260200160002061141490919063ffffffff16565b905092915050565b610db1611175565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e36906126ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610eaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea6906125fa565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260009054906101000a900460ff1615610fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb69061265a565b60405180910390fd5b6000801b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d8bff5a5336040518263ffffffff1660e01b815260040161101c9190612549565b60206040518083038186803b15801561103457600080fd5b505afa158015611048573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106c9190611d1c565b14156110ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a49061263a565b60405180910390fd5b6110d2336004600085815260200190815260200160002061141490919063ffffffff16565b611105576110fb336004600085815260200190815260200160002061114590919063ffffffff16565b61110457600080fd5b5b7f359eefdc83d4cbeabeed5ea68cd9213056f02a7317e55e1310612edc535d5ae9336040516111349190612549565b60405180910390a160019050919050565b600061116d836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611755565b905092915050565b600033905090565b6111a5816001600085815260200190815260200160002060000161114590919063ffffffff16565b1561120d576111b2611175565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b61123981600160008581526020019081526020016000206000016117c590919063ffffffff16565b156112a157611246611175565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600260009054906101000a900460ff166112f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112eb906125da565b60405180910390fd5b6000600260006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611338611175565b6040516113459190612549565b60405180910390a1565b600260009054906101000a900460ff161561139f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113969061265a565b60405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113e3611175565b6040516113f09190612549565b60405180910390a1565b600061140983600001836117f5565b60001c905092915050565b600061143c836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611862565b905092915050565b6000600260009054906101000a900460ff1615611496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148d9061265a565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630bebac86846040518263ffffffff1660e01b81526004016114f1919061252e565b60206040518083038186803b15801561150957600080fd5b505afa15801561151d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115419190611e10565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166320aba08b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115ab57600080fd5b505afa1580156115bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e39190611e10565b421161168c577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c92aecc46040518163ffffffff1660e01b815260040160206040518083038186803b15801561164f57600080fd5b505afa158015611663573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116879190611e10565b61172b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639f678cca6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116f257600080fd5b505afa158015611706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172a9190611e10565b5b90506117378282611885565b92505050919050565b600061174e82600001611907565b9050919050565b60006117618383611862565b6117ba5782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506117bf565b600090505b92915050565b60006117ed836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611918565b905092915050565b600081836000018054905011611840576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118379061259a565b60405180910390fd5b82600001828154811061184f57fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b6000600260009054906101000a900460ff16156118d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ce9061265a565b60405180910390fd5b6b033b2e3c9fd0803ce80000006118f78385611a0090919063ffffffff16565b816118fe57fe5b04905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020549050600081146119f4576000600182039050600060018660000180549050039050600086600001828154811061196357fe5b906000526020600020015490508087600001848154811061198057fe5b90600052602060002001819055506001830187600101600083815260200190815260200160002081905550866000018054806119b857fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506119fa565b60009150505b92915050565b600080831415611a135760009050611a6a565b6000828402905082848281611a2457fe5b0414611a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5c9061267a565b60405180910390fd5b809150505b92915050565b828054828255906000526020600020908101928215611aac579160200282015b82811115611aab578235825591602001919060010190611a90565b5b509050611ab99190611abd565b5090565b611adf91905b80821115611adb576000816000905550600101611ac3565b5090565b90565b600081359050611af181612878565b92915050565b600081519050611b0681612878565b92915050565b60008083601f840112611b1e57600080fd5b8235905067ffffffffffffffff811115611b3757600080fd5b602083019150836020820283011115611b4f57600080fd5b9250929050565b600081359050611b658161288f565b92915050565b600081519050611b7a8161288f565b92915050565b60006101008284031215611b9357600080fd5b611b9e610100612795565b90506000611bae84828501611c5b565b6000830152506020611bc284828501611c5b565b6020830152506040611bd684828501611af7565b6040830152506060611bea84828501611c70565b6060830152506080611bfe84828501611c70565b60808301525060a0611c1284828501611af7565b60a08301525060c0611c2684828501611af7565b60c08301525060e0611c3a84828501611c5b565b60e08301525092915050565b600081359050611c55816128a6565b92915050565b600081519050611c6a816128a6565b92915050565b600081519050611c7f816128bd565b92915050565b600060208284031215611c9757600080fd5b6000611ca584828501611ae2565b91505092915050565b60008060208385031215611cc157600080fd5b600083013567ffffffffffffffff811115611cdb57600080fd5b611ce785828601611b0c565b92509250509250929050565b600060208284031215611d0557600080fd5b6000611d1384828501611b56565b91505092915050565b600060208284031215611d2e57600080fd5b6000611d3c84828501611b6b565b91505092915050565b60008060408385031215611d5857600080fd5b6000611d6685828601611b56565b9250506020611d7785828601611ae2565b9150509250929050565b60008060408385031215611d9457600080fd5b6000611da285828601611b56565b9250506020611db385828601611c46565b9150509250929050565b60006101008284031215611dd057600080fd5b6000611dde84828501611b80565b91505092915050565b600060208284031215611df957600080fd5b6000611e0784828501611c46565b91505092915050565b600060208284031215611e2257600080fd5b6000611e3084828501611c5b565b91505092915050565b60008060408385031215611e4c57600080fd5b6000611e5a85828601611c46565b9250506020611e6b85828601611ae2565b9150509250929050565b60008060408385031215611e8857600080fd5b6000611e9685828601611c46565b9250506020611ea785828601611c46565b9150509250929050565b611eba81612842565b82525050565b611ec9816127de565b82525050565b611ed8816127f0565b82525050565b611ee7816127fc565b82525050565b6000611efa6022836127c2565b91507f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e60008301527f64730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f60602f836127c2565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f206772616e7400000000000000000000000000000000006020830152604082019050919050565b6000611fc66014836127c2565b91507f5061757361626c653a206e6f74207061757365640000000000000000000000006000830152602082019050919050565b60006120066026836127c2565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061206c6030836127c2565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f207265766f6b65000000000000000000000000000000006020830152604082019050919050565b60006120d2602a836127c2565b91507f43616c6c6572206973206e6f7420766f74696e6720696e20616e20457865637560008301527f74697665205370656c6c000000000000000000000000000000000000000000006020830152604082019050919050565b6000612138600b836127d3565b91507f5041555345525f524f4c450000000000000000000000000000000000000000006000830152600b82019050919050565b60006121786010836127c2565b91507f5061757361626c653a20706175736564000000000000000000000000000000006000830152602082019050919050565b60006121b86021836127c2565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061221e6034836127c2565b91507f43616c6c657220686173206e6f7420616363727565642031206f72206d6f726560008301527f2044616920696e746572657374206f6e20506f740000000000000000000000006020830152604082019050919050565b60006122846020836127c2565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006122c4600a836127d3565b91507f41444d494e5f524f4c45000000000000000000000000000000000000000000006000830152600a82019050919050565b60006123046016836127c2565b91507f43616c6c6572206973206e6f7420616e2061646d696e000000000000000000006000830152602082019050919050565b6000612344602b836127c2565b91507f4d616b65724261646765733a206d75737420686176652070617573657220726f60008301527f6c6520746f2070617573650000000000000000000000000000000000000000006020830152604082019050919050565b60006123aa602d836127c2565b91507f4d616b65724261646765733a206d75737420686176652070617573657220726f60008301527f6c6520746f20756e7061757365000000000000000000000000000000000000006020830152604082019050919050565b60006124106047836127c2565b91507f43616c6c6572206973206e6f742074686520686967682062696464657220696e60008301527f207468652063757272656e742042696420696e20436f6c6c61746572616c204160208301527f756374696f6e73000000000000000000000000000000000000000000000000006040830152606082019050919050565b600061249c602f836127c2565b91507f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008301527f20726f6c657320666f722073656c6600000000000000000000000000000000006020830152604082019050919050565b6124fe81612826565b82525050565b600061250f8261212b565b9150819050919050565b6000612524826122b7565b9150819050919050565b60006020820190506125436000830184611ec0565b92915050565b600060208201905061255e6000830184611eb1565b92915050565b60006020820190506125796000830184611ecf565b92915050565b60006020820190506125946000830184611ede565b92915050565b600060208201905081810360008301526125b381611eed565b9050919050565b600060208201905081810360008301526125d381611f53565b9050919050565b600060208201905081810360008301526125f381611fb9565b9050919050565b6000602082019050818103600083015261261381611ff9565b9050919050565b600060208201905081810360008301526126338161205f565b9050919050565b60006020820190508181036000830152612653816120c5565b9050919050565b600060208201905081810360008301526126738161216b565b9050919050565b60006020820190508181036000830152612693816121ab565b9050919050565b600060208201905081810360008301526126b381612211565b9050919050565b600060208201905081810360008301526126d381612277565b9050919050565b600060208201905081810360008301526126f3816122f7565b9050919050565b6000602082019050818103600083015261271381612337565b9050919050565b600060208201905081810360008301526127338161239d565b9050919050565b6000602082019050818103600083015261275381612403565b9050919050565b600060208201905081810360008301526127738161248f565b9050919050565b600060208201905061278f60008301846124f5565b92915050565b6000604051905081810181811067ffffffffffffffff821117156127b857600080fd5b8060405250919050565b600082825260208201905092915050565b600081905092915050565b60006127e982612806565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600065ffffffffffff82169050919050565b600061284d82612854565b9050919050565b600061285f82612866565b9050919050565b600061287182612806565b9050919050565b612881816127de565b811461288c57600080fd5b50565b612898816127fc565b81146128a357600080fd5b50565b6128af81612826565b81146128ba57600080fd5b50565b6128c681612830565b81146128d157600080fd5b5056fea26469706673582212206f23ab304c101c028026de619ed8013008a59174061fbd0aa0cae313ab4be54564736f6c634300060b0033", "immutableReferences": { - "737": [ + "742": [ { "length": 32, - "start": 5268 + "start": 5274 }, { "length": 32, - "start": 5441 + "start": 5447 }, { "length": 32, - "start": 5605 + "start": 5611 }, { "length": 32, - "start": 5768 + "start": 5774 } ], - "739": [ + "744": [ { "length": 32, - "start": 4031 + "start": 4037 } ], - "741": [ + "746": [ { "length": 32, - "start": 2158 + "start": 2222 } ] }, - "sourceMap": "1381:4905:2:-:0;;;2182:703;;;;;;;;;;865:17:6;885:12;:10;;;:12;;:::i;:::-;865:32;;916:9;907:6;;:18;;;;;;;;;;;;;;;;;;973:9;940:43;;969:1;940:43;;;;;;;;;;;;831:159;933:5:21;923:7;;:15;;;;;;;;;;;;;;;;;;2213:39:2;1762:4:5;2224:18:2;;2244:7;:5;;;:7;;:::i;:::-;2213:10;;;:39;;:::i;:::-;2263:32;1585:24;;;;;;;;;;;;;;2287:7;:5;;;:7;;:::i;:::-;2263:10;;;:32;;:::i;:::-;2435:42;2421:57;;;;;;;;;;;;2631:42;2611:63;;;;;;;;;;;;2836:42;2814:65;;;;;;;;;;;;1381:4905;;590:104:4;643:15;677:10;670:17;;590:104;:::o;1066:77:6:-;1104:7;1130:6;;;;;;;;;;;1123:13;;1066:77;:::o;6578:110:5:-;6656:25;6667:4;6673:7;6656:10;;;:25;;:::i;:::-;6578:110;;:::o;7015:184::-;7088:33;7113:7;7088:6;:12;7095:4;7088:12;;;;;;;;;;;:20;;:24;;;;;;:33;;;;:::i;:::-;7084:109;;;7169:12;:10;;;:12;;:::i;:::-;7142:40;;7160:7;7142:40;;7154:4;7142:40;;;;;;;;;;7084:109;7015:184;;:::o;4864:141:20:-;4934:4;4957:41;4962:3;:10;;4990:5;4982:14;;4974:23;;4957:4;;;:41;;:::i;:::-;4950:48;;4864:141;;;;:::o;1611:404::-;1674:4;1695:21;1705:3;1710:5;1695:9;;;:21;;:::i;:::-;1690:319;;1732:3;:11;;1749:5;1732:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1912:3;:11;;:18;;;;1890:3;:12;;:19;1903:5;1890:19;;;;;;;;;;;:40;;;;1951:4;1944:11;;;;1690:319;1993:5;1986:12;;1611:404;;;;;:::o;3776:127::-;3849:4;3895:1;3872:3;:12;;:19;3885:5;3872:19;;;;;;;;;;;;:24;;3865:31;;3776:127;;;;:::o;6:347:-1:-;;184:85;266:2;261:3;184:85;;;177:92;;302:13;298:1;293:3;289:11;282:34;344:2;339:3;335:12;328:19;;170:183;;;;361:381;;569:148;713:3;569:148;;;562:155;;734:3;727:10;;550:192;;;;750:145;;886:3;871:18;;864:31;;;;;1381:4905:2;;;;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "1381:4905:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3048:8;;;4272:112:5;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4634:223;;;;;;;;;;;;;;;;:::i;:::-;;5808:205;;;;;;;;;;;;;;;;:::i;:::-;;6128:155:2;;;:::i;:::-;;1040:76:21;;;:::i;:::-;;;;;;;;;;;;;;;;1689:145:6;;;:::i;:::-;;5895:139:2;;;:::i;:::-;;1066:77:6;;;:::i;:::-;;;;;;;;;;;;;;;;3955:136:5;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2940:137;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;5093:398:2;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1717:49:5;;;:::i;:::-;;;;;;;;;;;;;;;;3313:148:2;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4014:346;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1614:22;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3245:125:5;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;5091:226;;;;;;;;;;;;;;;;:::i;:::-;;1547:62:2;;;:::i;:::-;;;;;;;;;;;;;;;;5658:145;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1983:240:6;;;;;;;;;;;;;;;;:::i;:::-;;4540:345:2;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4272:112:5;4329:7;4355:6;:12;4362:4;4355:12;;;;;;;;;;;:22;;;4348:29;;4272:112;;;:::o;4634:223::-;4717:45;4725:6;:12;4732:4;4725:12;;;;;;;;;;;:22;;;4749:12;:10;:12::i;:::-;4717:7;:45::i;:::-;4709:105;;;;;;;;;;;;;;;;;;;;;;4825:25;4836:4;4842:7;4825:10;:25::i;:::-;4634:223;;:::o;5808:205::-;5905:12;:10;:12::i;:::-;5894:23;;:7;:23;;;5886:83;;;;;;;;;;;;;;;;;;;;;;5980:26;5992:4;5998:7;5980:11;:26::i;:::-;5808:205;;:::o;6128:155:2:-;6174:32;1585:24;;;;;;;;;;;;;;6195:10;6174:7;:32::i;:::-;6166:90;;;;;;;;;;;;;;;;;;;;;;6266:10;:8;:10::i;:::-;6128:155::o;1040:76:21:-;1079:4;1102:7;;;;;;;;;;;1095:14;;1040:76;:::o;1689:145:6:-;1280:12;:10;:12::i;:::-;1270:22;;:6;;;;;;;;;;;:22;;;1262:67;;;;;;;;;;;;;;;;;;;;;;1795:1:::1;1758:40;;1779:6;::::0;::::1;;;;;;;;;1758:40;;;;;;;;;;;;1825:1;1808:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1689:145::o:0;5895:139:2:-;5935:32;1585:24;;;;;;;;;;;;;;5956:10;5935:7;:32::i;:::-;5927:88;;;;;;;;;;;;;;;;;;;;;;6021:8;:6;:8::i;:::-;5895:139::o;1066:77:6:-;1104:7;1130:6;;;;;;;;;;;1123:13;;1066:77;:::o;3955:136:5:-;4028:7;4054:30;4078:5;4054:6;:12;4061:4;4054:12;;;;;;;;;;;:20;;:23;;:30;;;;:::i;:::-;4047:37;;3955:136;;;;:::o;2940:137::-;3009:4;3032:38;3062:7;3032:6;:12;3039:4;3032:12;;;;;;;;;;;:20;;:29;;:38;;;;:::i;:::-;3025:45;;2940:137;;;;:::o;5093:398:2:-;5186:4;1346:7:21;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;;;;;;;;;;;5233:10:2::1;5206:37;;:7;:12;;;5219:5;5206:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;:37;;;5198:121;;;;;;;;;;;;;;;;;;;;;;5330:42;5361:10;5330:9;:21;5340:10;5330:21;;;;;;;;;;;:30;;:42;;;;:::i;:::-;5325:108;;5388:37;5414:10;5388:9;:21;5398:10;5388:21;;;;;;;;;;;:25;;:37;;;;:::i;:::-;5380:46;;;::::0;::::1;;5325:108;5443:26;5458:10;5443:26;;;;;;;;;;;;;;;5482:4;5475:11;;5093:398:::0;;;;:::o;1717:49:5:-;1762:4;1717:49;;;:::o;3313:148:2:-;3409:4;1280:12:6;:10;:12::i;:::-;1270:22;;:6;;;;;;;;;;;:22;;;1262:67;;;;;;;;;;;;;;;;;;;;;;1346:7:21::1;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;;;;;;;;;;;3429:10:2::2;;3421:5;:18;;;;;;;:::i;:::-;;3452:4;3445:11;;3313:148:::0;;;;:::o;4014:346::-;4088:4;1346:7:21;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;;;;;;;;;;;4128:7:2::1;4108:16;4113:10;4108:4;:16::i;:::-;:27;;4100:92;;;;;;;;;;;;;;;;;;;;;;4203:42;4234:10;4203:9;:21;4213:10;4203:21;;;;;;;;;;;:30;;:42;;;;:::i;:::-;4198:108;;4261:37;4287:10;4261:9;:21;4271:10;4261:21;;;;;;;;;;;:25;;:37;;;;:::i;:::-;4253:46;;;::::0;::::1;;4198:108;4316:22;4327:10;4316:22;;;;;;;;;;;;;;;4351:4;4344:11;;4014:346:::0;;;:::o;1614:22::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3245:125:5:-;3308:7;3334:29;:6;:12;3341:4;3334:12;;;;;;;;;;;:20;;:27;:29::i;:::-;3327:36;;3245:125;;;:::o;5091:226::-;5175:45;5183:6;:12;5190:4;5183:12;;;;;;;;;;;:22;;;5207:12;:10;:12::i;:::-;5175:7;:45::i;:::-;5167:106;;;;;;;;;;;;;;;;;;;;;;5284:26;5296:4;5302:7;5284:11;:26::i;:::-;5091:226;;:::o;1547:62:2:-;1585:24;;;;;;;;;;;;;;1547:62;:::o;5658:145::-;5744:4;1346:7:21;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;;;;;;;;;;;5763:35:2::1;5794:3;5763:9;:21;5773:10;5763:21;;;;;;;;;;;:30;;:35;;;;:::i;:::-;5756:42;;5658:145:::0;;;;:::o;1983:240:6:-;1280:12;:10;:12::i;:::-;1270:22;;:6;;;;;;;;;;;:22;;;1262:67;;;;;;;;;;;;;;;;;;;;;;2091:1:::1;2071:22;;:8;:22;;;;2063:73;;;;;;;;;;;;;;;;;;;;;;2180:8;2151:38;;2172:6;::::0;::::1;;;;;;;;;2151:38;;;;;;;;;;;;2208:8;2199:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1983:240:::0;:::o;4540:345:2:-;4616:4;1346:7:21;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;;;;;;;;;;;4663:4:2::1;4636:31:::0;::::1;:5;:11;;;4648:10;4636:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:31;;4628:85;;;;;;;;;;;;;;;;;;;;;;4724:42;4755:10;4724:9;:21;4734:10;4724:21;;;;;;;;;;;:30;;:42;;;;:::i;:::-;4719:108;;4782:37;4808:10;4782:9;:21;4792:10;4782:21;;;;;;;;;;;:25;;:37;;;;:::i;:::-;4774:46;;;::::0;::::1;;4719:108;4837:26;4852:10;4837:26;;;;;;;;;;;;;;;4876:4;4869:11;;4540:345:::0;;;:::o;4864:141:20:-;4934:4;4957:41;4962:3;:10;;4990:5;4982:14;;4974:23;;4957:4;:41::i;:::-;4950:48;;4864:141;;;;:::o;590:104:4:-;643:15;677:10;670:17;;590:104;:::o;7015:184:5:-;7088:33;7113:7;7088:6;:12;7095:4;7088:12;;;;;;;;;;;:20;;:24;;:33;;;;:::i;:::-;7084:109;;;7169:12;:10;:12::i;:::-;7142:40;;7160:7;7142:40;;7154:4;7142:40;;;;;;;;;;7084:109;7015:184;;:::o;7205:188::-;7279:36;7307:7;7279:6;:12;7286:4;7279:12;;;;;;;;;;;:20;;:27;;:36;;;;:::i;:::-;7275:112;;;7363:12;:10;:12::i;:::-;7336:40;;7354:7;7336:40;;7348:4;7336:40;;;;;;;;;;7275:112;7205:188;;:::o;2042:117:21:-;1610:7;;;;;;;;;;;1602:40;;;;;;;;;;;;;;;;;;;;;;2110:5:::1;2100:7;;:15;;;;;;;;;;;;;;;;;;2130:22;2139:12;:10;:12::i;:::-;2130:22;;;;;;;;;;;;;;;2042:117::o:0;1795:115::-;1346:7;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;;;;;;;;;;;1864:4:::1;1854:7;;:14;;;;;;;;;;;;;;;;;;1883:20;1890:12;:10;:12::i;:::-;1883:20;;;;;;;;;;;;;;;1795:115::o:0;6085:147:20:-;6159:7;6201:22;6205:3;:10;;6217:5;6201:3;:22::i;:::-;6193:31;;6178:47;;6085:147;;;;:::o;5401:156::-;5481:4;5504:46;5514:3;:10;;5542:5;5534:14;;5526:23;;5504:9;:46::i;:::-;5497:53;;5401:156;;;;:::o;3637:205:2:-;3700:11;1346:7:21;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;;;;;;;;;;;3719:13:2::1;3735:3;:7;;;3743:3;3735:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3719:28;;3753:11;3774:3;:7;;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3768:3;:15;3767:42;;3800:3;:7;;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3767:42;;;3787:3;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3767:42;3753:56;;3821:16;3826:5;3833:3;3821:4;:16::i;:::-;3815:22;;1384:1:21;;3637:205:2::0;;;:::o;5638:115:20:-;5701:7;5727:19;5735:3;:10;;5727:7;:19::i;:::-;5720:26;;5638:115;;;:::o;1611:404::-;1674:4;1695:21;1705:3;1710:5;1695:9;:21::i;:::-;1690:319;;1732:3;:11;;1749:5;1732:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1912:3;:11;;:18;;;;1890:3;:12;;:19;1903:5;1890:19;;;;;;;;;;;:40;;;;1951:4;1944:11;;;;1690:319;1993:5;1986:12;;1611:404;;;;;:::o;5173:147::-;5246:4;5269:44;5277:3;:10;;5305:5;5297:14;;5289:23;;5269:7;:44::i;:::-;5262:51;;5173:147;;;;:::o;4423:201::-;4490:7;4538:5;4517:3;:11;;:18;;;;:26;4509:73;;;;;;;;;;;;;;;;;;;;;;4599:3;:11;;4611:5;4599:18;;;;;;;;;;;;;;;;4592:25;;4423:201;;;;:::o;3776:127::-;3849:4;3895:1;3872:3;:12;;:19;3885:5;3872:19;;;;;;;;;;;;:24;;3865:31;;3776:127;;;;:::o;2021:157:2:-;2094:9;1346:7:21;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;;;;;;;;;;;2008:8:2::1;2159;2165:1;2159;:5;;:8;;;;:::i;:::-;:14;;;;;;2155:18;;2021:157:::0;;;;:::o;3984:107:20:-;4040:7;4066:3;:11;;:18;;;;4059:25;;3984:107;;;:::o;2183:1512::-;2249:4;2365:18;2386:3;:12;;:19;2399:5;2386:19;;;;;;;;;;;;2365:40;;2434:1;2420:10;:15;2416:1273;;2777:21;2814:1;2801:10;:14;2777:38;;2829:17;2870:1;2849:3;:11;;:18;;;;:22;2829:42;;3111:17;3131:3;:11;;3143:9;3131:22;;;;;;;;;;;;;;;;3111:42;;3274:9;3245:3;:11;;3257:13;3245:26;;;;;;;;;;;;;;;:38;;;;3391:1;3375:13;:17;3349:3;:12;;:23;3362:9;3349:23;;;;;;;;;;;:43;;;;3498:3;:11;;:17;;;;;;;;;;;;;;;;;;;;;;;;3590:3;:12;;:19;3603:5;3590:19;;;;;;;;;;;3583:26;;;3631:4;3624:11;;;;;;;;2416:1273;3673:5;3666:12;;;2183:1512;;;;;:::o;2180:459:10:-;2238:7;2484:1;2479;:6;2475:45;;;2508:1;2501:8;;;;2475:45;2530:9;2546:1;2542;:5;2530:17;;2574:1;2569;2565;:5;;;;;;:10;2557:56;;;;;;;;;;;;;;;;;;;;;;2631:1;2624:8;;;2180:459;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:130::-;;85:6;72:20;63:29;;97:33;124:5;97:33;;;57:78;;;;;142:134;;226:6;220:13;211:22;;238:33;265:5;238:33;;;205:71;;;;;301:352;;;431:3;424:4;416:6;412:17;408:27;398:2;;449:1;446;439:12;398:2;482:6;469:20;459:30;;509:18;501:6;498:30;495:2;;;541:1;538;531:12;495:2;575:4;567:6;563:17;551:29;;626:3;618:4;610:6;606:17;596:8;592:32;589:41;586:2;;;643:1;640;633:12;586:2;391:262;;;;;;661:130;;741:6;728:20;719:29;;753:33;780:5;753:33;;;713:78;;;;;798:134;;882:6;876:13;867:22;;894:33;921:5;894:33;;;861:71;;;;;968:1423;;1088:6;1076:9;1071:3;1067:19;1063:32;1060:2;;;1108:1;1105;1098:12;1060:2;1126:22;1141:6;1126:22;;;1117:31;;1197:1;1229:60;1285:3;1276:6;1265:9;1261:22;1229:60;;;1222:4;1215:5;1211:16;1204:86;1158:143;1350:2;1383:60;1439:3;1430:6;1419:9;1415:22;1383:60;;;1376:4;1369:5;1365:16;1358:86;1311:144;1504:2;1537:60;1593:3;1584:6;1573:9;1569:22;1537:60;;;1530:4;1523:5;1519:16;1512:86;1465:144;1658:2;1691:59;1746:3;1737:6;1726:9;1722:22;1691:59;;;1684:4;1677:5;1673:16;1666:85;1619:143;1811:3;1845:59;1900:3;1891:6;1880:9;1876:22;1845:59;;;1838:4;1831:5;1827:16;1820:85;1772:144;1965:3;1999:60;2055:3;2046:6;2035:9;2031:22;1999:60;;;1992:4;1985:5;1981:16;1974:86;1926:145;2120:3;2154:60;2210:3;2201:6;2190:9;2186:22;2154:60;;;2147:4;2140:5;2136:16;2129:86;2081:145;2275:3;2309:60;2365:3;2356:6;2345:9;2341:22;2309:60;;;2302:4;2295:5;2291:16;2284:86;2236:145;1054:1337;;;;;2398:130;;2478:6;2465:20;2456:29;;2490:33;2517:5;2490:33;;;2450:78;;;;;2535:134;;2619:6;2613:13;2604:22;;2631:33;2658:5;2631:33;;;2598:71;;;;;2676:132;;2759:6;2753:13;2744:22;;2771:32;2797:5;2771:32;;;2738:70;;;;;2815:241;;2919:2;2907:9;2898:7;2894:23;2890:32;2887:2;;;2935:1;2932;2925:12;2887:2;2970:1;2987:53;3032:7;3023:6;3012:9;3008:22;2987:53;;;2977:63;;2949:97;2881:175;;;;;3063:397;;;3202:2;3190:9;3181:7;3177:23;3173:32;3170:2;;;3218:1;3215;3208:12;3170:2;3281:1;3270:9;3266:17;3253:31;3304:18;3296:6;3293:30;3290:2;;;3336:1;3333;3326:12;3290:2;3364:80;3436:7;3427:6;3416:9;3412:22;3364:80;;;3354:90;;;;3232:218;3164:296;;;;;;3467:241;;3571:2;3559:9;3550:7;3546:23;3542:32;3539:2;;;3587:1;3584;3577:12;3539:2;3622:1;3639:53;3684:7;3675:6;3664:9;3660:22;3639:53;;;3629:63;;3601:97;3533:175;;;;;3715:263;;3830:2;3818:9;3809:7;3805:23;3801:32;3798:2;;;3846:1;3843;3836:12;3798:2;3881:1;3898:64;3954:7;3945:6;3934:9;3930:22;3898:64;;;3888:74;;3860:108;3792:186;;;;;3985:366;;;4106:2;4094:9;4085:7;4081:23;4077:32;4074:2;;;4122:1;4119;4112:12;4074:2;4157:1;4174:53;4219:7;4210:6;4199:9;4195:22;4174:53;;;4164:63;;4136:97;4264:2;4282:53;4327:7;4318:6;4307:9;4303:22;4282:53;;;4272:63;;4243:98;4068:283;;;;;;4358:366;;;4479:2;4467:9;4458:7;4454:23;4450:32;4447:2;;;4495:1;4492;4485:12;4447:2;4530:1;4547:53;4592:7;4583:6;4572:9;4568:22;4547:53;;;4537:63;;4509:97;4637:2;4655:53;4700:7;4691:6;4680:9;4676:22;4655:53;;;4645:63;;4616:98;4441:283;;;;;;4731:304;;4866:3;4854:9;4845:7;4841:23;4837:33;4834:2;;;4883:1;4880;4873:12;4834:2;4918:1;4935:84;5011:7;5002:6;4991:9;4987:22;4935:84;;;4925:94;;4897:128;4828:207;;;;;5042:241;;5146:2;5134:9;5125:7;5121:23;5117:32;5114:2;;;5162:1;5159;5152:12;5114:2;5197:1;5214:53;5259:7;5250:6;5239:9;5235:22;5214:53;;;5204:63;;5176:97;5108:175;;;;;5290:263;;5405:2;5393:9;5384:7;5380:23;5376:32;5373:2;;;5421:1;5418;5411:12;5373:2;5456:1;5473:64;5529:7;5520:6;5509:9;5505:22;5473:64;;;5463:74;;5435:108;5367:186;;;;;5560:366;;;5681:2;5669:9;5660:7;5656:23;5652:32;5649:2;;;5697:1;5694;5687:12;5649:2;5732:1;5749:53;5794:7;5785:6;5774:9;5770:22;5749:53;;;5739:63;;5711:97;5839:2;5857:53;5902:7;5893:6;5882:9;5878:22;5857:53;;;5847:63;;5818:98;5643:283;;;;;;5933:366;;;6054:2;6042:9;6033:7;6029:23;6025:32;6022:2;;;6070:1;6067;6060:12;6022:2;6105:1;6122:53;6167:7;6158:6;6147:9;6143:22;6122:53;;;6112:63;;6084:97;6212:2;6230:53;6275:7;6266:6;6255:9;6251:22;6230:53;;;6220:63;;6191:98;6016:283;;;;;;6306:142;6397:45;6436:5;6397:45;;;6392:3;6385:58;6379:69;;;6455:113;6538:24;6556:5;6538:24;;;6533:3;6526:37;6520:48;;;6575:104;6652:21;6667:5;6652:21;;;6647:3;6640:34;6634:45;;;6686:113;6769:24;6787:5;6769:24;;;6764:3;6757:37;6751:48;;;6807:371;;6967:67;7031:2;7026:3;6967:67;;;6960:74;;7067:34;7063:1;7058:3;7054:11;7047:55;7136:4;7131:2;7126:3;7122:12;7115:26;7169:2;7164:3;7160:12;7153:19;;6953:225;;;;7187:384;;7347:67;7411:2;7406:3;7347:67;;;7340:74;;7447:34;7443:1;7438:3;7434:11;7427:55;7516:17;7511:2;7506:3;7502:12;7495:39;7562:2;7557:3;7553:12;7546:19;;7333:238;;;;7580:320;;7740:67;7804:2;7799:3;7740:67;;;7733:74;;7840:22;7836:1;7831:3;7827:11;7820:43;7891:2;7886:3;7882:12;7875:19;;7726:174;;;;7909:375;;8069:67;8133:2;8128:3;8069:67;;;8062:74;;8169:34;8165:1;8160:3;8156:11;8149:55;8238:8;8233:2;8228:3;8224:12;8217:30;8275:2;8270:3;8266:12;8259:19;;8055:229;;;;8293:385;;8453:67;8517:2;8512:3;8453:67;;;8446:74;;8553:34;8549:1;8544:3;8540:11;8533:55;8622:18;8617:2;8612:3;8608:12;8601:40;8669:2;8664:3;8660:12;8653:19;;8439:239;;;;8687:347;;8865:85;8947:2;8942:3;8865:85;;;8858:92;;8983:13;8979:1;8974:3;8970:11;8963:34;9025:2;9020:3;9016:12;9009:19;;8851:183;;;;9043:378;;9203:67;9267:2;9262:3;9203:67;;;9196:74;;9303:34;9299:1;9294:3;9290:11;9283:55;9372:11;9367:2;9362:3;9358:12;9351:33;9412:2;9407:3;9403:12;9396:19;;9189:232;;;;9430:316;;9590:67;9654:2;9649:3;9590:67;;;9583:74;;9690:18;9686:1;9681:3;9677:11;9670:39;9737:2;9732:3;9728:12;9721:19;;9576:170;;;;9755:370;;9915:67;9979:2;9974:3;9915:67;;;9908:74;;10015:34;10011:1;10006:3;10002:11;9995:55;10084:3;10079:2;10074:3;10070:12;10063:25;10116:2;10111:3;10107:12;10100:19;;9901:224;;;;10134:389;;10294:67;10358:2;10353:3;10294:67;;;10287:74;;10394:34;10390:1;10385:3;10381:11;10374:55;10463:22;10458:2;10453:3;10449:12;10442:44;10514:2;10509:3;10505:12;10498:19;;10280:243;;;;10532:332;;10692:67;10756:2;10751:3;10692:67;;;10685:74;;10792:34;10788:1;10783:3;10779:11;10772:55;10855:2;10850:3;10846:12;10839:19;;10678:186;;;;10873:380;;11033:67;11097:2;11092:3;11033:67;;;11026:74;;11133:34;11129:1;11124:3;11120:11;11113:55;11202:13;11197:2;11192:3;11188:12;11181:35;11244:2;11239:3;11235:12;11228:19;;11019:234;;;;11262:382;;11422:67;11486:2;11481:3;11422:67;;;11415:74;;11522:34;11518:1;11513:3;11509:11;11502:55;11591:15;11586:2;11581:3;11577:12;11570:37;11635:2;11630:3;11626:12;11619:19;;11408:236;;;;11653:445;;11813:67;11877:2;11872:3;11813:67;;;11806:74;;11913:34;11909:1;11904:3;11900:11;11893:55;11982:34;11977:2;11972:3;11968:12;11961:56;12051:9;12046:2;12041:3;12037:12;12030:31;12089:2;12084:3;12080:12;12073:19;;11799:299;;;;12107:384;;12267:67;12331:2;12326:3;12267:67;;;12260:74;;12367:34;12363:1;12358:3;12354:11;12347:55;12436:17;12431:2;12426:3;12422:12;12415:39;12482:2;12477:3;12473:12;12466:19;;12253:238;;;;12499:113;12582:24;12600:5;12582:24;;;12577:3;12570:37;12564:48;;;12619:381;;12827:148;12971:3;12827:148;;;12820:155;;12992:3;12985:10;;12808:192;;;;13007:222;;13134:2;13123:9;13119:18;13111:26;;13148:71;13216:1;13205:9;13201:17;13192:6;13148:71;;;13105:124;;;;;13236:238;;13371:2;13360:9;13356:18;13348:26;;13385:79;13461:1;13450:9;13446:17;13437:6;13385:79;;;13342:132;;;;;13481:210;;13602:2;13591:9;13587:18;13579:26;;13616:65;13678:1;13667:9;13663:17;13654:6;13616:65;;;13573:118;;;;;13698:222;;13825:2;13814:9;13810:18;13802:26;;13839:71;13907:1;13896:9;13892:17;13883:6;13839:71;;;13796:124;;;;;13927:416;;14127:2;14116:9;14112:18;14104:26;;14177:9;14171:4;14167:20;14163:1;14152:9;14148:17;14141:47;14202:131;14328:4;14202:131;;;14194:139;;14098:245;;;;14350:416;;14550:2;14539:9;14535:18;14527:26;;14600:9;14594:4;14590:20;14586:1;14575:9;14571:17;14564:47;14625:131;14751:4;14625:131;;;14617:139;;14521:245;;;;14773:416;;14973:2;14962:9;14958:18;14950:26;;15023:9;15017:4;15013:20;15009:1;14998:9;14994:17;14987:47;15048:131;15174:4;15048:131;;;15040:139;;14944:245;;;;15196:416;;15396:2;15385:9;15381:18;15373:26;;15446:9;15440:4;15436:20;15432:1;15421:9;15417:17;15410:47;15471:131;15597:4;15471:131;;;15463:139;;15367:245;;;;15619:416;;15819:2;15808:9;15804:18;15796:26;;15869:9;15863:4;15859:20;15855:1;15844:9;15840:17;15833:47;15894:131;16020:4;15894:131;;;15886:139;;15790:245;;;;16042:416;;16242:2;16231:9;16227:18;16219:26;;16292:9;16286:4;16282:20;16278:1;16267:9;16263:17;16256:47;16317:131;16443:4;16317:131;;;16309:139;;16213:245;;;;16465:416;;16665:2;16654:9;16650:18;16642:26;;16715:9;16709:4;16705:20;16701:1;16690:9;16686:17;16679:47;16740:131;16866:4;16740:131;;;16732:139;;16636:245;;;;16888:416;;17088:2;17077:9;17073:18;17065:26;;17138:9;17132:4;17128:20;17124:1;17113:9;17109:17;17102:47;17163:131;17289:4;17163:131;;;17155:139;;17059:245;;;;17311:416;;17511:2;17500:9;17496:18;17488:26;;17561:9;17555:4;17551:20;17547:1;17536:9;17532:17;17525:47;17586:131;17712:4;17586:131;;;17578:139;;17482:245;;;;17734:416;;17934:2;17923:9;17919:18;17911:26;;17984:9;17978:4;17974:20;17970:1;17959:9;17955:17;17948:47;18009:131;18135:4;18009:131;;;18001:139;;17905:245;;;;18157:416;;18357:2;18346:9;18342:18;18334:26;;18407:9;18401:4;18397:20;18393:1;18382:9;18378:17;18371:47;18432:131;18558:4;18432:131;;;18424:139;;18328:245;;;;18580:416;;18780:2;18769:9;18765:18;18757:26;;18830:9;18824:4;18820:20;18816:1;18805:9;18801:17;18794:47;18855:131;18981:4;18855:131;;;18847:139;;18751:245;;;;19003:416;;19203:2;19192:9;19188:18;19180:26;;19253:9;19247:4;19243:20;19239:1;19228:9;19224:17;19217:47;19278:131;19404:4;19278:131;;;19270:139;;19174:245;;;;19426:416;;19626:2;19615:9;19611:18;19603:26;;19676:9;19670:4;19666:20;19662:1;19651:9;19647:17;19640:47;19701:131;19827:4;19701:131;;;19693:139;;19597:245;;;;19849:222;;19976:2;19965:9;19961:18;19953:26;;19990:71;20058:1;20047:9;20043:17;20034:6;19990:71;;;19947:124;;;;;20078:256;;20140:2;20134:9;20124:19;;20178:4;20170:6;20166:17;20277:6;20265:10;20262:22;20241:18;20229:10;20226:34;20223:62;20220:2;;;20298:1;20295;20288:12;20220:2;20318:10;20314:2;20307:22;20118:216;;;;;20342:163;;20457:6;20452:3;20445:19;20494:4;20489:3;20485:14;20470:29;;20438:67;;;;;20514:145;;20650:3;20635:18;;20628:31;;;;;20667:91;;20729:24;20747:5;20729:24;;;20718:35;;20712:46;;;;20765:85;;20838:5;20831:13;20824:21;20813:32;;20807:43;;;;20857:72;;20919:5;20908:16;;20902:27;;;;20936:121;;21009:42;21002:5;20998:54;20987:65;;20981:76;;;;21064:72;;21126:5;21115:16;;21109:27;;;;21143:92;;21215:14;21208:5;21204:26;21193:37;;21187:48;;;;21242:129;;21329:37;21360:5;21329:37;;;21316:50;;21310:61;;;;21378:121;;21457:37;21488:5;21457:37;;;21444:50;;21438:61;;;;21506:108;;21585:24;21603:5;21585:24;;;21572:37;;21566:48;;;;21621:117;21690:24;21708:5;21690:24;;;21683:5;21680:35;21670:2;;21729:1;21726;21719:12;21670:2;21664:74;;21745:117;21814:24;21832:5;21814:24;;;21807:5;21804:35;21794:2;;21853:1;21850;21843:12;21794:2;21788:74;;21869:117;21938:24;21956:5;21938:24;;;21931:5;21928:35;21918:2;;21977:1;21974;21967:12;21918:2;21912:74;;21993:115;22061:23;22078:5;22061:23;;;22054:5;22051:34;22041:2;;22099:1;22096;22089:12;22041:2;22035:73;", - "source": "/// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.6.10;\npragma experimental ABIEncoderV2;\n\n\n/// @title Non-transferable Badges for Maker Ecosystem Activity, CDIP 18\n/// @author Nazzareno Massari @naszam\n/// @notice MakerBadges to check for activities on maker ecosystem and keep track of redeemers\n/// @dev See https://github.com/makerdao/community/issues/537\n/// @dev All function calls are currently implemented without side effects through TDD approach\n/// @dev OpenZeppelin library is used for secure contract development\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport \"@openzeppelin/contracts/utils/Pausable.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"@openzeppelin/contracts/utils/EnumerableSet.sol\";\n\ninterface PotLike {\n\n function pie(address guy) external view returns (uint256);\n function chi() external view returns (uint256);\n function rho() external view returns (uint256);\n function drip() external view returns (uint256);\n\n}\n\ninterface DSChiefLike {\n function votes(address) external view returns (bytes32);\n}\n\ninterface FlipperLike {\n struct Bid {\n uint256 bid;\n uint256 lot;\n address guy;\n uint48 tic;\n uint48 end;\n address usr;\n address gal;\n uint256 tab;\n}\n function bids(uint256) external view returns (Bid memory);\n}\n\ncontract MakerBadges is Ownable, AccessControl, Pausable {\n\n /// @dev Libraries\n using SafeMath for uint256;\n using EnumerableSet for EnumerableSet.AddressSet;\n\n bytes32 public constant PAUSER_ROLE = keccak256(\"PAUSER_ROLE\");\n\n bytes32[] public roots;\n\n mapping (uint256 => EnumerableSet.AddressSet) private redeemers;\n\n /// @dev Events\n event PotChecked(address guy);\n event DSChiefChecked(address guy);\n event FlipperChecked(address guy);\n\n /// @dev Data\n PotLike internal immutable pot;\n DSChiefLike internal immutable chief;\n FlipperLike internal immutable flipper;\n\n /// @dev Math\n uint256 constant RAY = 10 ** 27;\n\n function rmul(uint256 x, uint256 y) internal view whenNotPaused returns (uint256 z) {\n /// @dev always rounds down\n z = x.mul(y) / RAY;\n }\n\n constructor() public {\n _setupRole(DEFAULT_ADMIN_ROLE, owner());\n\n _setupRole(PAUSER_ROLE, owner());\n\n /// @dev MCD_POT Kovan Address https://kovan.etherscan.io/address/0xea190dbdc7adf265260ec4da6e9675fd4f5a78bb#code\n\tpot = PotLike(0xEA190DBDC7adF265260ec4dA6e9675Fd4f5A78bb);\n\n /// @dev MCD_ADM Kovan Address https://kovan.etherscan.io/address/0xbBFFC76e94B34F72D96D054b31f6424249c1337d#code\n chief = DSChiefLike(0xbBFFC76e94B34F72D96D054b31f6424249c1337d);\n\n /// @dev MCD_FLIP_ETH_A Kovan Address https://kovan.etherscan.io/address/0xB40139Ea36D35d0C9F6a2e62601B616F1FfbBD1b#code\n flipper = FlipperLike(0xB40139Ea36D35d0C9F6a2e62601B616F1FfbBD1b);\n\n }\n\n /// @notice Fallback function\n /// @dev Added not payable to revert transactions not matching any other function which send value\n fallback() external {\n revert();\n }\n\n /// @notice Set Merkle Tree Root Hashes array\n /// @dev Called by owner to update roots for different address batches by templateId\n /// @param rootHashes Root hashes of the Merkle Trees by templateId\n /// @return True if successfully updated\n function setRootHashes(bytes32[] calldata rootHashes) external onlyOwner whenNotPaused returns (bool) {\n roots = rootHashes;\n return true;\n }\n\n /// @notice Return the accrued interest of guy on Pot\n /// @dev Based on Chai dai() function\n /// @param guy Address to check\n /// @return wad Accrued interest of guy\n function _dai(address guy) private view whenNotPaused returns (uint256 wad) {\n uint256 slice = pot.pie(guy);\n uint256 chi = (now > pot.rho()) ? pot.drip() : pot.chi();\n wad = rmul(slice, chi);\n }\n\n /// @notice Pot Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @return True if the caller successfully checked for activity on Pot\n function potChallenge(uint256 templateId) external whenNotPaused returns (bool) {\n require(_dai(msg.sender) >= 1 ether, \"Caller has not accrued 1 or more Dai interest on Pot\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit PotChecked(msg.sender);\n return true;\n }\n\n /// @notice DSChief Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @return True if the caller successfully checked for activity on DSChief\n function chiefChallenge(uint256 templateId) external whenNotPaused returns (bool) {\n require(chief.votes(msg.sender) != 0x00, \"Caller is not voting in a Governance Poll\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit DSChiefChecked(msg.sender);\n return true;\n }\n\n /// @notice Flipper Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @dev guy, high bidder\n /// @return True if the caller successfully checked for activity on Flipper\n function flipperChallenge(uint256 templateId, uint256 bidId) external whenNotPaused returns (bool) {\n require(flipper.bids(bidId).guy == msg.sender, \"Caller is not the high bidder in the current Bid in Collateral Auctions\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit FlipperChecked(msg.sender);\n return true;\n }\n\n /// @notice Check if guy is a redeemer\n /// @dev Verify if the address of guy exists\n /// @param guy Address to verify\n /// @return True if guy is a redeemer\n function verify(uint256 templateId, address guy) external view whenNotPaused returns (bool) {\n return redeemers[templateId].contains(guy);\n }\n\n /// @notice Pause all the functions\n /// @dev the caller must have the 'PAUSER_ROLE'\n function pause() external {\n require(hasRole(PAUSER_ROLE, msg.sender), \"MakerBadges: must have pauser role to pause\");\n _pause();\n }\n\n /// @notice Unpause all the functions\n /// @dev the caller must have the 'PAUSER_ROLE'\n function unpause() external {\n require(hasRole(PAUSER_ROLE, msg.sender), \"MakerBadges: must have pauser role to unpause\");\n _unpause();\n }\n\n}\n", + "sourceMap": "1381:4826:2:-:0;;;2246:422;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;865:17:6;885:12;:10;;;:12;;:::i;:::-;865:32;;916:9;907:6;;:18;;;;;;;;;;;;;;;;;;973:9;940:43;;969:1;940:43;;;;;;;;;;;;831:159;933:5:21;923:7;;:15;;;;;;;;;;;;;;;;;;2323:39:2;1762:4:5;2334:18:2;;2354:7;:5;;;:7;;:::i;:::-;2323:10;;;:39;;:::i;:::-;2373:31;1584:23;;;;;:::i;:::-;;;;;;;;2396:7;:5;;;:7;;:::i;:::-;2373:10;;;:31;;:::i;:::-;2414:32;1649:24;;;;;:::i;:::-;;;;;;;;2438:7;:5;;;:7;;:::i;:::-;2414:10;;;:32;;:::i;:::-;2504:4;2490:19;;;;;;;;;;;;2573:6;2553:27;;;;;;;;;;;;2653:8;2631:31;;;;;;;;;;;;2246:422;;;1381:4826;;590:104:4;643:15;677:10;670:17;;590:104;:::o;1066:77:6:-;1104:7;1130:6;;;;;;;;;;;1123:13;;1066:77;:::o;6578:110:5:-;6656:25;6667:4;6673:7;6656:10;;;:25;;:::i;:::-;6578:110;;:::o;7015:184::-;7088:33;7113:7;7088:6;:12;7095:4;7088:12;;;;;;;;;;;:20;;:24;;;;;;:33;;;;:::i;:::-;7084:109;;;7169:12;:10;;;:12;;:::i;:::-;7142:40;;7160:7;7142:40;;7154:4;7142:40;;;;;;;;;;7084:109;7015:184;;:::o;4864:141:20:-;4934:4;4957:41;4962:3;:10;;4990:5;4982:14;;4974:23;;4957:4;;;:41;;:::i;:::-;4950:48;;4864:141;;;;:::o;1611:404::-;1674:4;1695:21;1705:3;1710:5;1695:9;;;:21;;:::i;:::-;1690:319;;1732:3;:11;;1749:5;1732:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1912:3;:11;;:18;;;;1890:3;:12;;:19;1903:5;1890:19;;;;;;;;;;;:40;;;;1951:4;1944:11;;;;1690:319;1993:5;1986:12;;1611:404;;;;;:::o;3776:127::-;3849:4;3895:1;3872:3;:12;;:19;3885:5;3872:19;;;;;;;;;;;;:24;;3865:31;;3776:127;;;;:::o;5:134:-1:-;;89:6;83:13;74:22;;101:33;128:5;101:33;:::i;:::-;68:71;;;;:::o;146:535::-;;;;295:2;283:9;274:7;270:23;266:32;263:2;;;311:1;308;301:12;263:2;346:1;363:64;419:7;410:6;399:9;395:22;363:64;:::i;:::-;353:74;;325:108;464:2;482:64;538:7;529:6;518:9;514:22;482:64;:::i;:::-;472:74;;443:109;583:2;601:64;657:7;648:6;637:9;633:22;601:64;:::i;:::-;591:74;;562:109;257:424;;;;;:::o;689:347::-;;867:85;949:2;944:3;867:85;:::i;:::-;860:92;;985:13;981:1;976:3;972:11;965:34;1027:2;1022:3;1018:12;1011:19;;853:183;;;:::o;1045:346::-;;1223:85;1305:2;1300:3;1223:85;:::i;:::-;1216:92;;1341:12;1337:1;1332:3;1328:11;1321:33;1382:2;1377:3;1373:12;1366:19;;1209:182;;;:::o;1399:381::-;;1607:148;1751:3;1607:148;:::i;:::-;1600:155;;1772:3;1765:10;;1588:192;;;:::o;1787:381::-;;1995:148;2139:3;1995:148;:::i;:::-;1988:155;;2160:3;2153:10;;1976:192;;;:::o;2176:145::-;;2312:3;2297:18;;2290:31;;;;:::o;2329:91::-;;2391:24;2409:5;2391:24;:::i;:::-;2380:35;;2374:46;;;:::o;2427:121::-;;2500:42;2493:5;2489:54;2478:65;;2472:76;;;:::o;2555:117::-;2624:24;2642:5;2624:24;:::i;:::-;2617:5;2614:35;2604:2;;2663:1;2660;2653:12;2604:2;2598:74;:::o;1381:4826:2:-;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "1381:4826:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2831:8;;;4272:112:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4634:223;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5808:205;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6049:155:2;;;:::i;:::-;;1040:76:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1689:145:6;;;:::i;:::-;;1547:60:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5816:139;;;:::i;:::-;;1066:77:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3955:136:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2940:137;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5014:398:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1717:49:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3233:148:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3934:346;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1678:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3245:125:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5091:226;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1611:62:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5579:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1983:240:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4460:346:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4272:112:5;4329:7;4355:6;:12;4362:4;4355:12;;;;;;;;;;;:22;;;4348:29;;4272:112;;;:::o;4634:223::-;4717:45;4725:6;:12;4732:4;4725:12;;;;;;;;;;;:22;;;4749:12;:10;:12::i;:::-;4717:7;:45::i;:::-;4709:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;4825:25;4836:4;4842:7;4825:10;:25::i;:::-;4634:223;;:::o;5808:205::-;5905:12;:10;:12::i;:::-;5894:23;;:7;:23;;;5886:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;5980:26;5992:4;5998:7;5980:11;:26::i;:::-;5808:205;;:::o;6049:155:2:-;6095:32;1649:24;;;;;:::i;:::-;;;;;;;;6116:10;6095:7;:32::i;:::-;6087:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;6187:10;:8;:10::i;:::-;6049:155::o;1040:76:21:-;1079:4;1102:7;;;;;;;;;;;1095:14;;1040:76;:::o;1689:145:6:-;1280:12;:10;:12::i;:::-;1270:22;;:6;;;;;;;;;;;:22;;;1262:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1795:1:::1;1758:40;;1779:6;::::0;::::1;;;;;;;;;1758:40;;;;;;;;;;;;1825:1;1808:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1689:145::o:0;1547:60:2:-;1584:23;;;;;:::i;:::-;;;;;;;;1547:60;:::o;5816:139::-;5856:32;1649:24;;;;;:::i;:::-;;;;;;;;5877:10;5856:7;:32::i;:::-;5848:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;5942:8;:6;:8::i;:::-;5816:139::o;1066:77:6:-;1104:7;1130:6;;;;;;;;;;;1123:13;;1066:77;:::o;3955:136:5:-;4028:7;4054:30;4078:5;4054:6;:12;4061:4;4054:12;;;;;;;;;;;:20;;:23;;:30;;;;:::i;:::-;4047:37;;3955:136;;;;:::o;2940:137::-;3009:4;3032:38;3062:7;3032:6;:12;3039:4;3032:12;;;;;;;;;;;:20;;:29;;:38;;;;:::i;:::-;3025:45;;2940:137;;;;:::o;5014:398:2:-;5107:4;1346:7:21;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;5154:10:2::1;5127:37;;:7;:12;;;5140:5;5127:19;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:23;;;:37;;;5119:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;5251:42;5282:10;5251:9;:21;5261:10;5251:21;;;;;;;;;;;:30;;:42;;;;:::i;:::-;5246:108;;5309:37;5335:10;5309:9;:21;5319:10;5309:21;;;;;;;;;;;:25;;:37;;;;:::i;:::-;5301:46;;;::::0;::::1;;5246:108;5364:26;5379:10;5364:26;;;;;;:::i;:::-;;;;;;;;5403:4;5396:11;;5014:398:::0;;;;:::o;1717:49:5:-;1762:4;1717:49;;;:::o;3233:148:2:-;3329:4;2906:31;1584:23;;;;;:::i;:::-;;;;;;;;2926:10;2906:7;:31::i;:::-;2898:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;1346:7:21::1;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;3349:10:2::2;;3341:5;:18;;;;;;;:::i;:::-;;3372:4;3365:11;;3233:148:::0;;;;:::o;3934:346::-;4008:4;1346:7:21;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;4048:7:2::1;4028:16;4033:10;4028:4;:16::i;:::-;:27;;4020:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;4123:42;4154:10;4123:9;:21;4133:10;4123:21;;;;;;;;;;;:30;;:42;;;;:::i;:::-;4118:108;;4181:37;4207:10;4181:9;:21;4191:10;4181:21;;;;;;;;;;;:25;;:37;;;;:::i;:::-;4173:46;;;::::0;::::1;;4118:108;4236:22;4247:10;4236:22;;;;;;:::i;:::-;;;;;;;;4271:4;4264:11;;3934:346:::0;;;:::o;1678:22::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3245:125:5:-;3308:7;3334:29;:6;:12;3341:4;3334:12;;;;;;;;;;;:20;;:27;:29::i;:::-;3327:36;;3245:125;;;:::o;5091:226::-;5175:45;5183:6;:12;5190:4;5183:12;;;;;;;;;;;:22;;;5207:12;:10;:12::i;:::-;5175:7;:45::i;:::-;5167:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;5284:26;5296:4;5302:7;5284:11;:26::i;:::-;5091:226;;:::o;1611:62:2:-;1649:24;;;;;:::i;:::-;;;;;;;;1611:62;:::o;5579:145::-;5665:4;1346:7:21;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;5684:35:2::1;5715:3;5684:9;:21;5694:10;5684:21;;;;;;;;;;;:30;;:35;;;;:::i;:::-;5677:42;;5579:145:::0;;;;:::o;1983:240:6:-;1280:12;:10;:12::i;:::-;1270:22;;:6;;;;;;;;;;;:22;;;1262:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2091:1:::1;2071:22;;:8;:22;;;;2063:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2180:8;2151:38;;2172:6;::::0;::::1;;;;;;;;;2151:38;;;;;;;;;;;;2208:8;2199:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1983:240:::0;:::o;4460:346:2:-;4536:4;1346:7:21;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;4583:4:2::1;4556:31:::0;::::1;:5;:11;;;4568:10;4556:23;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;;4548:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;4645:42;4676:10;4645:9;:21;4655:10;4645:21;;;;;;;;;;;:30;;:42;;;;:::i;:::-;4640:108;;4703:37;4729:10;4703:9;:21;4713:10;4703:21;;;;;;;;;;;:25;;:37;;;;:::i;:::-;4695:46;;;::::0;::::1;;4640:108;4758:26;4773:10;4758:26;;;;;;:::i;:::-;;;;;;;;4797:4;4790:11;;4460:346:::0;;;:::o;4864:141:20:-;4934:4;4957:41;4962:3;:10;;4990:5;4982:14;;4974:23;;4957:4;:41::i;:::-;4950:48;;4864:141;;;;:::o;590:104:4:-;643:15;677:10;670:17;;590:104;:::o;7015:184:5:-;7088:33;7113:7;7088:6;:12;7095:4;7088:12;;;;;;;;;;;:20;;:24;;:33;;;;:::i;:::-;7084:109;;;7169:12;:10;:12::i;:::-;7142:40;;7160:7;7142:40;;7154:4;7142:40;;;;;;;;;;7084:109;7015:184;;:::o;7205:188::-;7279:36;7307:7;7279:6;:12;7286:4;7279:12;;;;;;;;;;;:20;;:27;;:36;;;;:::i;:::-;7275:112;;;7363:12;:10;:12::i;:::-;7336:40;;7354:7;7336:40;;7348:4;7336:40;;;;;;;;;;7275:112;7205:188;;:::o;2042:117:21:-;1610:7;;;;;;;;;;;1602:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;2110:5:::1;2100:7;;:15;;;;;;;;;;;;;;;;;;2130:22;2139:12;:10;:12::i;:::-;2130:22;;;;;;:::i;:::-;;;;;;;;2042:117::o:0;1795:115::-;1346:7;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;1864:4:::1;1854:7;;:14;;;;;;;;;;;;;;;;;;1883:20;1890:12;:10;:12::i;:::-;1883:20;;;;;;:::i;:::-;;;;;;;;1795:115::o:0;6085:147:20:-;6159:7;6201:22;6205:3;:10;;6217:5;6201:3;:22::i;:::-;6193:31;;6178:47;;6085:147;;;;:::o;5401:156::-;5481:4;5504:46;5514:3;:10;;5542:5;5534:14;;5526:23;;5504:9;:46::i;:::-;5497:53;;5401:156;;;;:::o;3557:205:2:-;3620:11;1346:7:21;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;3639:13:2::1;3655:3;:7;;;3663:3;3655:12;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3639:28;;3673:11;3694:3;:7;;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3688:3;:15;3687:42;;3720:3;:7;;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3687:42;;;3707:3;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3687:42;3673:56;;3741:16;3746:5;3753:3;3741:4;:16::i;:::-;3735:22;;1384:1:21;;3557:205:2::0;;;:::o;5638:115:20:-;5701:7;5727:19;5735:3;:10;;5727:7;:19::i;:::-;5720:26;;5638:115;;;:::o;1611:404::-;1674:4;1695:21;1705:3;1710:5;1695:9;:21::i;:::-;1690:319;;1732:3;:11;;1749:5;1732:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1912:3;:11;;:18;;;;1890:3;:12;;:19;1903:5;1890:19;;;;;;;;;;;:40;;;;1951:4;1944:11;;;;1690:319;1993:5;1986:12;;1611:404;;;;;:::o;5173:147::-;5246:4;5269:44;5277:3;:10;;5305:5;5297:14;;5289:23;;5269:7;:44::i;:::-;5262:51;;5173:147;;;;:::o;4423:201::-;4490:7;4538:5;4517:3;:11;;:18;;;;:26;4509:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;4599:3;:11;;4611:5;4599:18;;;;;;;;;;;;;;;;4592:25;;4423:201;;;;:::o;3776:127::-;3849:4;3895:1;3872:3;:12;;:19;3885:5;3872:19;;;;;;;;;;;;:24;;3865:31;;3776:127;;;;:::o;2085:157:2:-;2158:9;1346:7:21;;;;;;;;;;;1345:8;1337:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;2072:8:2::1;2223;2229:1;2223;:5;;:8;;;;:::i;:::-;:14;;;;;;2219:18;;2085:157:::0;;;;:::o;3984:107:20:-;4040:7;4066:3;:11;;:18;;;;4059:25;;3984:107;;;:::o;2183:1512::-;2249:4;2365:18;2386:3;:12;;:19;2399:5;2386:19;;;;;;;;;;;;2365:40;;2434:1;2420:10;:15;2416:1273;;2777:21;2814:1;2801:10;:14;2777:38;;2829:17;2870:1;2849:3;:11;;:18;;;;:22;2829:42;;3111:17;3131:3;:11;;3143:9;3131:22;;;;;;;;;;;;;;;;3111:42;;3274:9;3245:3;:11;;3257:13;3245:26;;;;;;;;;;;;;;;:38;;;;3391:1;3375:13;:17;3349:3;:12;;:23;3362:9;3349:23;;;;;;;;;;;:43;;;;3498:3;:11;;:17;;;;;;;;;;;;;;;;;;;;;;;;3590:3;:12;;:19;3603:5;3590:19;;;;;;;;;;;3583:26;;;3631:4;3624:11;;;;;;;;2416:1273;3673:5;3666:12;;;2183:1512;;;;;:::o;2180:459:10:-;2238:7;2484:1;2479;:6;2475:45;;;2508:1;2501:8;;;;2475:45;2530:9;2546:1;2542;:5;2530:17;;2574:1;2569;2565;:5;;;;;;:10;2557:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2631:1;2624:8;;;2180:459;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:130::-;;85:6;72:20;63:29;;97:33;124:5;97:33;:::i;:::-;57:78;;;;:::o;142:134::-;;226:6;220:13;211:22;;238:33;265:5;238:33;:::i;:::-;205:71;;;;:::o;301:352::-;;;431:3;424:4;416:6;412:17;408:27;398:2;;449:1;446;439:12;398:2;482:6;469:20;459:30;;509:18;501:6;498:30;495:2;;;541:1;538;531:12;495:2;575:4;567:6;563:17;551:29;;626:3;618:4;610:6;606:17;596:8;592:32;589:41;586:2;;;643:1;640;633:12;586:2;391:262;;;;;:::o;661:130::-;;741:6;728:20;719:29;;753:33;780:5;753:33;:::i;:::-;713:78;;;;:::o;798:134::-;;882:6;876:13;867:22;;894:33;921:5;894:33;:::i;:::-;861:71;;;;:::o;968:1423::-;;1088:6;1076:9;1071:3;1067:19;1063:32;1060:2;;;1108:1;1105;1098:12;1060:2;1126:22;1141:6;1126:22;:::i;:::-;1117:31;;1197:1;1229:60;1285:3;1276:6;1265:9;1261:22;1229:60;:::i;:::-;1222:4;1215:5;1211:16;1204:86;1158:143;1350:2;1383:60;1439:3;1430:6;1419:9;1415:22;1383:60;:::i;:::-;1376:4;1369:5;1365:16;1358:86;1311:144;1504:2;1537:60;1593:3;1584:6;1573:9;1569:22;1537:60;:::i;:::-;1530:4;1523:5;1519:16;1512:86;1465:144;1658:2;1691:59;1746:3;1737:6;1726:9;1722:22;1691:59;:::i;:::-;1684:4;1677:5;1673:16;1666:85;1619:143;1811:3;1845:59;1900:3;1891:6;1880:9;1876:22;1845:59;:::i;:::-;1838:4;1831:5;1827:16;1820:85;1772:144;1965:3;1999:60;2055:3;2046:6;2035:9;2031:22;1999:60;:::i;:::-;1992:4;1985:5;1981:16;1974:86;1926:145;2120:3;2154:60;2210:3;2201:6;2190:9;2186:22;2154:60;:::i;:::-;2147:4;2140:5;2136:16;2129:86;2081:145;2275:3;2309:60;2365:3;2356:6;2345:9;2341:22;2309:60;:::i;:::-;2302:4;2295:5;2291:16;2284:86;2236:145;1054:1337;;;;:::o;2398:130::-;;2478:6;2465:20;2456:29;;2490:33;2517:5;2490:33;:::i;:::-;2450:78;;;;:::o;2535:134::-;;2619:6;2613:13;2604:22;;2631:33;2658:5;2631:33;:::i;:::-;2598:71;;;;:::o;2676:132::-;;2759:6;2753:13;2744:22;;2771:32;2797:5;2771:32;:::i;:::-;2738:70;;;;:::o;2815:241::-;;2919:2;2907:9;2898:7;2894:23;2890:32;2887:2;;;2935:1;2932;2925:12;2887:2;2970:1;2987:53;3032:7;3023:6;3012:9;3008:22;2987:53;:::i;:::-;2977:63;;2949:97;2881:175;;;;:::o;3063:397::-;;;3202:2;3190:9;3181:7;3177:23;3173:32;3170:2;;;3218:1;3215;3208:12;3170:2;3281:1;3270:9;3266:17;3253:31;3304:18;3296:6;3293:30;3290:2;;;3336:1;3333;3326:12;3290:2;3364:80;3436:7;3427:6;3416:9;3412:22;3364:80;:::i;:::-;3346:98;;;;3232:218;3164:296;;;;;:::o;3467:241::-;;3571:2;3559:9;3550:7;3546:23;3542:32;3539:2;;;3587:1;3584;3577:12;3539:2;3622:1;3639:53;3684:7;3675:6;3664:9;3660:22;3639:53;:::i;:::-;3629:63;;3601:97;3533:175;;;;:::o;3715:263::-;;3830:2;3818:9;3809:7;3805:23;3801:32;3798:2;;;3846:1;3843;3836:12;3798:2;3881:1;3898:64;3954:7;3945:6;3934:9;3930:22;3898:64;:::i;:::-;3888:74;;3860:108;3792:186;;;;:::o;3985:366::-;;;4106:2;4094:9;4085:7;4081:23;4077:32;4074:2;;;4122:1;4119;4112:12;4074:2;4157:1;4174:53;4219:7;4210:6;4199:9;4195:22;4174:53;:::i;:::-;4164:63;;4136:97;4264:2;4282:53;4327:7;4318:6;4307:9;4303:22;4282:53;:::i;:::-;4272:63;;4243:98;4068:283;;;;;:::o;4358:366::-;;;4479:2;4467:9;4458:7;4454:23;4450:32;4447:2;;;4495:1;4492;4485:12;4447:2;4530:1;4547:53;4592:7;4583:6;4572:9;4568:22;4547:53;:::i;:::-;4537:63;;4509:97;4637:2;4655:53;4700:7;4691:6;4680:9;4676:22;4655:53;:::i;:::-;4645:63;;4616:98;4441:283;;;;;:::o;4731:304::-;;4866:3;4854:9;4845:7;4841:23;4837:33;4834:2;;;4883:1;4880;4873:12;4834:2;4918:1;4935:84;5011:7;5002:6;4991:9;4987:22;4935:84;:::i;:::-;4925:94;;4897:128;4828:207;;;;:::o;5042:241::-;;5146:2;5134:9;5125:7;5121:23;5117:32;5114:2;;;5162:1;5159;5152:12;5114:2;5197:1;5214:53;5259:7;5250:6;5239:9;5235:22;5214:53;:::i;:::-;5204:63;;5176:97;5108:175;;;;:::o;5290:263::-;;5405:2;5393:9;5384:7;5380:23;5376:32;5373:2;;;5421:1;5418;5411:12;5373:2;5456:1;5473:64;5529:7;5520:6;5509:9;5505:22;5473:64;:::i;:::-;5463:74;;5435:108;5367:186;;;;:::o;5560:366::-;;;5681:2;5669:9;5660:7;5656:23;5652:32;5649:2;;;5697:1;5694;5687:12;5649:2;5732:1;5749:53;5794:7;5785:6;5774:9;5770:22;5749:53;:::i;:::-;5739:63;;5711:97;5839:2;5857:53;5902:7;5893:6;5882:9;5878:22;5857:53;:::i;:::-;5847:63;;5818:98;5643:283;;;;;:::o;5933:366::-;;;6054:2;6042:9;6033:7;6029:23;6025:32;6022:2;;;6070:1;6067;6060:12;6022:2;6105:1;6122:53;6167:7;6158:6;6147:9;6143:22;6122:53;:::i;:::-;6112:63;;6084:97;6212:2;6230:53;6275:7;6266:6;6255:9;6251:22;6230:53;:::i;:::-;6220:63;;6191:98;6016:283;;;;;:::o;6306:142::-;6397:45;6436:5;6397:45;:::i;:::-;6392:3;6385:58;6379:69;;:::o;6455:113::-;6538:24;6556:5;6538:24;:::i;:::-;6533:3;6526:37;6520:48;;:::o;6575:104::-;6652:21;6667:5;6652:21;:::i;:::-;6647:3;6640:34;6634:45;;:::o;6686:113::-;6769:24;6787:5;6769:24;:::i;:::-;6764:3;6757:37;6751:48;;:::o;6807:371::-;;6967:67;7031:2;7026:3;6967:67;:::i;:::-;6960:74;;7067:34;7063:1;7058:3;7054:11;7047:55;7136:4;7131:2;7126:3;7122:12;7115:26;7169:2;7164:3;7160:12;7153:19;;6953:225;;;:::o;7187:384::-;;7347:67;7411:2;7406:3;7347:67;:::i;:::-;7340:74;;7447:34;7443:1;7438:3;7434:11;7427:55;7516:17;7511:2;7506:3;7502:12;7495:39;7562:2;7557:3;7553:12;7546:19;;7333:238;;;:::o;7580:320::-;;7740:67;7804:2;7799:3;7740:67;:::i;:::-;7733:74;;7840:22;7836:1;7831:3;7827:11;7820:43;7891:2;7886:3;7882:12;7875:19;;7726:174;;;:::o;7909:375::-;;8069:67;8133:2;8128:3;8069:67;:::i;:::-;8062:74;;8169:34;8165:1;8160:3;8156:11;8149:55;8238:8;8233:2;8228:3;8224:12;8217:30;8275:2;8270:3;8266:12;8259:19;;8055:229;;;:::o;8293:385::-;;8453:67;8517:2;8512:3;8453:67;:::i;:::-;8446:74;;8553:34;8549:1;8544:3;8540:11;8533:55;8622:18;8617:2;8612:3;8608:12;8601:40;8669:2;8664:3;8660:12;8653:19;;8439:239;;;:::o;8687:379::-;;8847:67;8911:2;8906:3;8847:67;:::i;:::-;8840:74;;8947:34;8943:1;8938:3;8934:11;8927:55;9016:12;9011:2;9006:3;9002:12;8995:34;9057:2;9052:3;9048:12;9041:19;;8833:233;;;:::o;9075:347::-;;9253:85;9335:2;9330:3;9253:85;:::i;:::-;9246:92;;9371:13;9367:1;9362:3;9358:11;9351:34;9413:2;9408:3;9404:12;9397:19;;9239:183;;;:::o;9431:316::-;;9591:67;9655:2;9650:3;9591:67;:::i;:::-;9584:74;;9691:18;9687:1;9682:3;9678:11;9671:39;9738:2;9733:3;9729:12;9722:19;;9577:170;;;:::o;9756:370::-;;9916:67;9980:2;9975:3;9916:67;:::i;:::-;9909:74;;10016:34;10012:1;10007:3;10003:11;9996:55;10085:3;10080:2;10075:3;10071:12;10064:25;10117:2;10112:3;10108:12;10101:19;;9902:224;;;:::o;10135:389::-;;10295:67;10359:2;10354:3;10295:67;:::i;:::-;10288:74;;10395:34;10391:1;10386:3;10382:11;10375:55;10464:22;10459:2;10454:3;10450:12;10443:44;10515:2;10510:3;10506:12;10499:19;;10281:243;;;:::o;10533:332::-;;10693:67;10757:2;10752:3;10693:67;:::i;:::-;10686:74;;10793:34;10789:1;10784:3;10780:11;10773:55;10856:2;10851:3;10847:12;10840:19;;10679:186;;;:::o;10874:346::-;;11052:85;11134:2;11129:3;11052:85;:::i;:::-;11045:92;;11170:12;11166:1;11161:3;11157:11;11150:33;11211:2;11206:3;11202:12;11195:19;;11038:182;;;:::o;11229:322::-;;11389:67;11453:2;11448:3;11389:67;:::i;:::-;11382:74;;11489:24;11485:1;11480:3;11476:11;11469:45;11542:2;11537:3;11533:12;11526:19;;11375:176;;;:::o;11560:380::-;;11720:67;11784:2;11779:3;11720:67;:::i;:::-;11713:74;;11820:34;11816:1;11811:3;11807:11;11800:55;11889:13;11884:2;11879:3;11875:12;11868:35;11931:2;11926:3;11922:12;11915:19;;11706:234;;;:::o;11949:382::-;;12109:67;12173:2;12168:3;12109:67;:::i;:::-;12102:74;;12209:34;12205:1;12200:3;12196:11;12189:55;12278:15;12273:2;12268:3;12264:12;12257:37;12322:2;12317:3;12313:12;12306:19;;12095:236;;;:::o;12340:445::-;;12500:67;12564:2;12559:3;12500:67;:::i;:::-;12493:74;;12600:34;12596:1;12591:3;12587:11;12580:55;12669:34;12664:2;12659:3;12655:12;12648:56;12738:9;12733:2;12728:3;12724:12;12717:31;12776:2;12771:3;12767:12;12760:19;;12486:299;;;:::o;12794:384::-;;12954:67;13018:2;13013:3;12954:67;:::i;:::-;12947:74;;13054:34;13050:1;13045:3;13041:11;13034:55;13123:17;13118:2;13113:3;13109:12;13102:39;13169:2;13164:3;13160:12;13153:19;;12940:238;;;:::o;13186:113::-;13269:24;13287:5;13269:24;:::i;:::-;13264:3;13257:37;13251:48;;:::o;13306:381::-;;13514:148;13658:3;13514:148;:::i;:::-;13507:155;;13679:3;13672:10;;13495:192;;;:::o;13694:381::-;;13902:148;14046:3;13902:148;:::i;:::-;13895:155;;14067:3;14060:10;;13883:192;;;:::o;14082:222::-;;14209:2;14198:9;14194:18;14186:26;;14223:71;14291:1;14280:9;14276:17;14267:6;14223:71;:::i;:::-;14180:124;;;;:::o;14311:238::-;;14446:2;14435:9;14431:18;14423:26;;14460:79;14536:1;14525:9;14521:17;14512:6;14460:79;:::i;:::-;14417:132;;;;:::o;14556:210::-;;14677:2;14666:9;14662:18;14654:26;;14691:65;14753:1;14742:9;14738:17;14729:6;14691:65;:::i;:::-;14648:118;;;;:::o;14773:222::-;;14900:2;14889:9;14885:18;14877:26;;14914:71;14982:1;14971:9;14967:17;14958:6;14914:71;:::i;:::-;14871:124;;;;:::o;15002:416::-;;15202:2;15191:9;15187:18;15179:26;;15252:9;15246:4;15242:20;15238:1;15227:9;15223:17;15216:47;15277:131;15403:4;15277:131;:::i;:::-;15269:139;;15173:245;;;:::o;15425:416::-;;15625:2;15614:9;15610:18;15602:26;;15675:9;15669:4;15665:20;15661:1;15650:9;15646:17;15639:47;15700:131;15826:4;15700:131;:::i;:::-;15692:139;;15596:245;;;:::o;15848:416::-;;16048:2;16037:9;16033:18;16025:26;;16098:9;16092:4;16088:20;16084:1;16073:9;16069:17;16062:47;16123:131;16249:4;16123:131;:::i;:::-;16115:139;;16019:245;;;:::o;16271:416::-;;16471:2;16460:9;16456:18;16448:26;;16521:9;16515:4;16511:20;16507:1;16496:9;16492:17;16485:47;16546:131;16672:4;16546:131;:::i;:::-;16538:139;;16442:245;;;:::o;16694:416::-;;16894:2;16883:9;16879:18;16871:26;;16944:9;16938:4;16934:20;16930:1;16919:9;16915:17;16908:47;16969:131;17095:4;16969:131;:::i;:::-;16961:139;;16865:245;;;:::o;17117:416::-;;17317:2;17306:9;17302:18;17294:26;;17367:9;17361:4;17357:20;17353:1;17342:9;17338:17;17331:47;17392:131;17518:4;17392:131;:::i;:::-;17384:139;;17288:245;;;:::o;17540:416::-;;17740:2;17729:9;17725:18;17717:26;;17790:9;17784:4;17780:20;17776:1;17765:9;17761:17;17754:47;17815:131;17941:4;17815:131;:::i;:::-;17807:139;;17711:245;;;:::o;17963:416::-;;18163:2;18152:9;18148:18;18140:26;;18213:9;18207:4;18203:20;18199:1;18188:9;18184:17;18177:47;18238:131;18364:4;18238:131;:::i;:::-;18230:139;;18134:245;;;:::o;18386:416::-;;18586:2;18575:9;18571:18;18563:26;;18636:9;18630:4;18626:20;18622:1;18611:9;18607:17;18600:47;18661:131;18787:4;18661:131;:::i;:::-;18653:139;;18557:245;;;:::o;18809:416::-;;19009:2;18998:9;18994:18;18986:26;;19059:9;19053:4;19049:20;19045:1;19034:9;19030:17;19023:47;19084:131;19210:4;19084:131;:::i;:::-;19076:139;;18980:245;;;:::o;19232:416::-;;19432:2;19421:9;19417:18;19409:26;;19482:9;19476:4;19472:20;19468:1;19457:9;19453:17;19446:47;19507:131;19633:4;19507:131;:::i;:::-;19499:139;;19403:245;;;:::o;19655:416::-;;19855:2;19844:9;19840:18;19832:26;;19905:9;19899:4;19895:20;19891:1;19880:9;19876:17;19869:47;19930:131;20056:4;19930:131;:::i;:::-;19922:139;;19826:245;;;:::o;20078:416::-;;20278:2;20267:9;20263:18;20255:26;;20328:9;20322:4;20318:20;20314:1;20303:9;20299:17;20292:47;20353:131;20479:4;20353:131;:::i;:::-;20345:139;;20249:245;;;:::o;20501:416::-;;20701:2;20690:9;20686:18;20678:26;;20751:9;20745:4;20741:20;20737:1;20726:9;20722:17;20715:47;20776:131;20902:4;20776:131;:::i;:::-;20768:139;;20672:245;;;:::o;20924:416::-;;21124:2;21113:9;21109:18;21101:26;;21174:9;21168:4;21164:20;21160:1;21149:9;21145:17;21138:47;21199:131;21325:4;21199:131;:::i;:::-;21191:139;;21095:245;;;:::o;21347:222::-;;21474:2;21463:9;21459:18;21451:26;;21488:71;21556:1;21545:9;21541:17;21532:6;21488:71;:::i;:::-;21445:124;;;;:::o;21576:256::-;;21638:2;21632:9;21622:19;;21676:4;21668:6;21664:17;21775:6;21763:10;21760:22;21739:18;21727:10;21724:34;21721:62;21718:2;;;21796:1;21793;21786:12;21718:2;21816:10;21812:2;21805:22;21616:216;;;;:::o;21840:163::-;;21955:6;21950:3;21943:19;21992:4;21987:3;21983:14;21968:29;;21936:67;;;;:::o;22012:145::-;;22148:3;22133:18;;22126:31;;;;:::o;22165:91::-;;22227:24;22245:5;22227:24;:::i;:::-;22216:35;;22210:46;;;:::o;22263:85::-;;22336:5;22329:13;22322:21;22311:32;;22305:43;;;:::o;22355:72::-;;22417:5;22406:16;;22400:27;;;:::o;22434:121::-;;22507:42;22500:5;22496:54;22485:65;;22479:76;;;:::o;22562:72::-;;22624:5;22613:16;;22607:27;;;:::o;22641:92::-;;22713:14;22706:5;22702:26;22691:37;;22685:48;;;:::o;22740:129::-;;22827:37;22858:5;22827:37;:::i;:::-;22814:50;;22808:61;;;:::o;22876:121::-;;22955:37;22986:5;22955:37;:::i;:::-;22942:50;;22936:61;;;:::o;23004:108::-;;23083:24;23101:5;23083:24;:::i;:::-;23070:37;;23064:48;;;:::o;23119:117::-;23188:24;23206:5;23188:24;:::i;:::-;23181:5;23178:35;23168:2;;23227:1;23224;23217:12;23168:2;23162:74;:::o;23243:117::-;23312:24;23330:5;23312:24;:::i;:::-;23305:5;23302:35;23292:2;;23351:1;23348;23341:12;23292:2;23286:74;:::o;23367:117::-;23436:24;23454:5;23436:24;:::i;:::-;23429:5;23426:35;23416:2;;23475:1;23472;23465:12;23416:2;23410:74;:::o;23491:115::-;23559:23;23576:5;23559:23;:::i;:::-;23552:5;23549:34;23539:2;;23597:1;23594;23587:12;23539:2;23533:73;:::o", + "source": "/// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.6.11;\npragma experimental ABIEncoderV2;\n\n\n/// @title Non-transferable Badges for Maker Ecosystem Activity, CDIP 18\n/// @author Nazzareno Massari @naszam\n/// @notice MakerBadges to check for activities on maker ecosystem and keep track of redeemers\n/// @dev See https://github.com/makerdao/community/issues/537\n/// @dev All function calls are currently implemented without side effects through TDD approach\n/// @dev OpenZeppelin library is used for secure contract development\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport \"@openzeppelin/contracts/utils/Pausable.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"@openzeppelin/contracts/utils/EnumerableSet.sol\";\n\ninterface PotLike {\n\n function pie(address guy) external view returns (uint256);\n function chi() external view returns (uint256);\n function rho() external view returns (uint256);\n function drip() external view returns (uint256);\n\n}\n\ninterface DSChiefLike {\n function votes(address) external view returns (bytes32);\n}\n\ninterface FlipperLike {\n struct Bid {\n uint256 bid;\n uint256 lot;\n address guy;\n uint48 tic;\n uint48 end;\n address usr;\n address gal;\n uint256 tab;\n}\n function bids(uint256) external view returns (Bid memory);\n}\n\ncontract MakerBadges is Ownable, AccessControl, Pausable {\n\n /// @dev Libraries\n using SafeMath for uint256;\n using EnumerableSet for EnumerableSet.AddressSet;\n\n bytes32 public constant ADMIN_ROLE = keccak256(\"ADMIN_ROLE\");\n bytes32 public constant PAUSER_ROLE = keccak256(\"PAUSER_ROLE\");\n\n bytes32[] public roots;\n\n mapping (uint256 => EnumerableSet.AddressSet) private redeemers;\n\n /// @dev Events\n event PotChecked(address guy);\n event DSChiefChecked(address guy);\n event FlipperChecked(address guy);\n\n /// @dev Data\n PotLike internal immutable pot;\n DSChiefLike internal immutable chief;\n FlipperLike internal immutable flipper;\n\n /// @dev Math\n uint256 constant RAY = 10 ** 27;\n\n function rmul(uint256 x, uint256 y) internal view whenNotPaused returns (uint256 z) {\n /// @dev always rounds down\n z = x.mul(y) / RAY;\n }\n\n constructor(address pot_, address chief_, address flipper_) public {\n _setupRole(DEFAULT_ADMIN_ROLE, owner());\n\n _setupRole(ADMIN_ROLE, owner());\n _setupRole(PAUSER_ROLE, owner());\n\n /// @dev MCD_POT Address\n pot = PotLike(pot_);\n\n /// @dev MCD_ADM Address\n chief = DSChiefLike(chief_);\n\n /// @dev MCD_FLIP_ETH_A Address\n flipper = FlipperLike(flipper_);\n\n }\n\n /// @notice Fallback function\n /// @dev Added not payable to revert transactions not matching any other function which send value\n fallback() external {\n revert();\n }\n\n /// @dev Modifiers\n modifier onlyAdmin() {\n require(hasRole(ADMIN_ROLE, msg.sender), \"Caller is not an admin\");\n _;\n }\n\n\n /// @notice Set Merkle Tree Root Hashes array\n /// @dev Called by owner to update roots for different address batches by templateId\n /// @param rootHashes Root hashes of the Merkle Trees by templateId\n /// @return True if successfully updated\n function setRootHashes(bytes32[] calldata rootHashes) external onlyAdmin whenNotPaused returns (bool) {\n roots = rootHashes;\n return true;\n }\n\n /// @notice Return the accrued interest of guy on Pot\n /// @dev Based on Chai dai() function\n /// @param guy Address to check\n /// @return wad Accrued interest of guy\n function _dai(address guy) private view whenNotPaused returns (uint256 wad) {\n uint256 slice = pot.pie(guy);\n uint256 chi = (now > pot.rho()) ? pot.drip() : pot.chi();\n wad = rmul(slice, chi);\n }\n\n /// @notice Pot Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @return True if the caller successfully checked for activity on Pot\n function potChallenge(uint256 templateId) external whenNotPaused returns (bool) {\n require(_dai(msg.sender) >= 1 ether, \"Caller has not accrued 1 or more Dai interest on Pot\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit PotChecked(msg.sender);\n return true;\n }\n\n /// @notice DSChief Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @return True if the caller successfully checked for activity on DSChief\n function chiefChallenge(uint256 templateId) external whenNotPaused returns (bool) {\n require(chief.votes(msg.sender) != 0x00, \"Caller is not voting in an Executive Spell\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit DSChiefChecked(msg.sender);\n return true;\n }\n\n /// @notice Flipper Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @dev guy, high bidder\n /// @return True if the caller successfully checked for activity on Flipper\n function flipperChallenge(uint256 templateId, uint256 bidId) external whenNotPaused returns (bool) {\n require(flipper.bids(bidId).guy == msg.sender, \"Caller is not the high bidder in the current Bid in Collateral Auctions\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit FlipperChecked(msg.sender);\n return true;\n }\n\n /// @notice Check if guy is a redeemer\n /// @dev Verify if the address of guy exists\n /// @param guy Address to verify\n /// @return True if guy is a redeemer\n function verify(uint256 templateId, address guy) external view whenNotPaused returns (bool) {\n return redeemers[templateId].contains(guy);\n }\n\n /// @notice Pause all the functions\n /// @dev the caller must have the 'PAUSER_ROLE'\n function pause() external {\n require(hasRole(PAUSER_ROLE, msg.sender), \"MakerBadges: must have pauser role to pause\");\n _pause();\n }\n\n /// @notice Unpause all the functions\n /// @dev the caller must have the 'PAUSER_ROLE'\n function unpause() external {\n require(hasRole(PAUSER_ROLE, msg.sender), \"MakerBadges: must have pauser role to unpause\");\n _unpause();\n }\n\n}\n", "sourcePath": "/home/sencha/maker-badges/contracts/MakerBadges.sol", "ast": { "absolutePath": "/home/sencha/maker-badges/contracts/MakerBadges.sol", @@ -579,13 +609,13 @@ 697 ], "MakerBadges": [ - 1075 + 1106 ], "PotLike": [ 664 ] }, - "id": 1076, + "id": 1107, "license": "GPL-3.0", "nodeType": "SourceUnit", "nodes": [ @@ -594,7 +624,7 @@ "literals": [ "solidity", "0.6", - ".10" + ".11" ], "nodeType": "PragmaDirective", "src": "37:23:2" @@ -613,8 +643,8 @@ "file": "@openzeppelin/contracts/access/Ownable.sol", "id": 637, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1528, + "scope": 1107, + "sourceUnit": 1559, "src": "532:52:2", "symbolAliases": [], "unitAlias": "" @@ -624,8 +654,8 @@ "file": "@openzeppelin/contracts/access/AccessControl.sol", "id": 638, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1419, + "scope": 1107, + "sourceUnit": 1450, "src": "585:58:2", "symbolAliases": [], "unitAlias": "" @@ -635,8 +665,8 @@ "file": "@openzeppelin/contracts/utils/Pausable.sol", "id": 639, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 4211, + "scope": 1107, + "sourceUnit": 4242, "src": "644:52:2", "symbolAliases": [], "unitAlias": "" @@ -646,8 +676,8 @@ "file": "@openzeppelin/contracts/math/SafeMath.sol", "id": 640, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1864, + "scope": 1107, + "sourceUnit": 1895, "src": "697:51:2", "symbolAliases": [], "unitAlias": "" @@ -657,8 +687,8 @@ "file": "@openzeppelin/contracts/utils/EnumerableSet.sol", "id": 641, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 4121, + "scope": 1107, + "sourceUnit": 4152, "src": "749:57:2", "symbolAliases": [], "unitAlias": "" @@ -940,7 +970,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "808:243:2" }, { @@ -1046,7 +1076,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "1053:84:2" }, { @@ -1391,7 +1421,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "1139:240:2" }, { @@ -1404,10 +1434,10 @@ "id": 698, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1527, + "referencedDeclaration": 1558, "src": "1405:7:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$1527", + "typeIdentifier": "t_contract$_Ownable_$1558", "typeString": "contract Ownable" } }, @@ -1422,10 +1452,10 @@ "id": 700, "name": "AccessControl", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1418, + "referencedDeclaration": 1449, "src": "1414:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_AccessControl_$1418", + "typeIdentifier": "t_contract$_AccessControl_$1449", "typeString": "contract AccessControl" } }, @@ -1440,10 +1470,10 @@ "id": 702, "name": "Pausable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4210, + "referencedDeclaration": 4241, "src": "1429:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pausable_$4210", + "typeIdentifier": "t_contract$_Pausable_$4241", "typeString": "contract Pausable" } }, @@ -1453,21 +1483,21 @@ } ], "contractDependencies": [ - 1135, - 1418, - 1527, - 4210 + 1166, + 1449, + 1558, + 4241 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1075, + "id": 1106, "linearizedBaseContracts": [ - 1075, - 4210, - 1418, - 1527, - 1135 + 1106, + 4241, + 1449, + 1558, + 1166 ], "name": "MakerBadges", "nodeType": "ContractDefinition", @@ -1479,10 +1509,10 @@ "id": 704, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1863, + "referencedDeclaration": 1894, "src": "1470:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1863", + "typeIdentifier": "t_contract$_SafeMath_$1894", "typeString": "library SafeMath" } }, @@ -1506,10 +1536,10 @@ "id": 707, "name": "EnumerableSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4120, + "referencedDeclaration": 4151, "src": "1500:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_EnumerableSet_$4120", + "typeIdentifier": "t_contract$_EnumerableSet_$4151", "typeString": "library EnumerableSet" } }, @@ -1520,24 +1550,24 @@ "id": 708, "name": "EnumerableSet.AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, + "referencedDeclaration": 3947, "src": "1518:24:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } } }, { "constant": true, - "functionSelector": "e63ab1e9", + "functionSelector": "75b238fc", "id": 714, "mutability": "constant", - "name": "PAUSER_ROLE", + "name": "ADMIN_ROLE", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1547:62:2", + "scope": 1106, + "src": "1547:60:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1559,7 +1589,7 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "5041555345525f524f4c45", + "hexValue": "41444d494e5f524f4c45", "id": 712, "isConstant": false, "isLValue": false, @@ -1567,7 +1597,90 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1595:13:2", + "src": "1594:12:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", + "typeString": "literal_string \"ADMIN_ROLE\"" + }, + "value": "ADMIN_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", + "typeString": "literal_string \"ADMIN_ROLE\"" + } + ], + "id": 711, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1584:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1584:23:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "e63ab1e9", + "id": 719, + "mutability": "constant", + "name": "PAUSER_ROLE", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1106, + "src": "1611:62:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 715, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1611:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "5041555345525f524f4c45", + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1659:13:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a", @@ -1583,18 +1696,18 @@ "typeString": "literal_string \"PAUSER_ROLE\"" } ], - "id": 711, + "id": 716, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "1585:9:2", + "src": "1649:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 713, + "id": 718, "isConstant": false, "isLValue": false, "isPure": true, @@ -1602,7 +1715,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1585:24:2", + "src": "1649:24:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1614,13 +1727,13 @@ { "constant": false, "functionSelector": "c2b40ae4", - "id": 717, + "id": 722, "mutability": "mutable", "name": "roots", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1614:22:2", + "scope": 1106, + "src": "1678:22:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1629,19 +1742,19 @@ }, "typeName": { "baseType": { - "id": 715, + "id": 720, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1614:7:2", + "src": "1678:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 716, + "id": 721, "length": null, "nodeType": "ArrayTypeName", - "src": "1614:9:2", + "src": "1678:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -1652,46 +1765,46 @@ }, { "constant": false, - "id": 721, + "id": 726, "mutability": "mutable", "name": "redeemers", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1641:63:2", + "scope": 1106, + "src": "1705:63:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet)" }, "typeName": { - "id": 720, + "id": 725, "keyType": { - "id": 718, + "id": 723, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1650:7:2", + "src": "1714:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "1641:45:2", + "src": "1705:45:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet)" }, "valueType": { "contractScope": null, - "id": 719, + "id": 724, "name": "EnumerableSet.AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, - "src": "1661:24:2", + "referencedDeclaration": 3947, + "src": "1725:24:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } } @@ -1702,28 +1815,28 @@ { "anonymous": false, "documentation": { - "id": 722, + "id": 727, "nodeType": "StructuredDocumentation", - "src": "1709:15:2", + "src": "1773:15:2", "text": "@dev Events" }, - "id": 726, + "id": 731, "name": "PotChecked", "nodeType": "EventDefinition", "parameters": { - "id": 725, + "id": 730, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 724, + "id": 729, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 726, - "src": "1744:11:2", + "scope": 731, + "src": "1808:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1731,10 +1844,10 @@ "typeString": "address" }, "typeName": { - "id": 723, + "id": 728, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1744:7:2", + "src": "1808:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1745,30 +1858,30 @@ "visibility": "internal" } ], - "src": "1743:13:2" + "src": "1807:13:2" }, - "src": "1727:30:2" + "src": "1791:30:2" }, { "anonymous": false, "documentation": null, - "id": 730, + "id": 735, "name": "DSChiefChecked", "nodeType": "EventDefinition", "parameters": { - "id": 729, + "id": 734, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 728, + "id": 733, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 730, - "src": "1781:11:2", + "scope": 735, + "src": "1845:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1776,10 +1889,10 @@ "typeString": "address" }, "typeName": { - "id": 727, + "id": 732, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1781:7:2", + "src": "1845:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1790,30 +1903,30 @@ "visibility": "internal" } ], - "src": "1780:13:2" + "src": "1844:13:2" }, - "src": "1760:34:2" + "src": "1824:34:2" }, { "anonymous": false, "documentation": null, - "id": 734, + "id": 739, "name": "FlipperChecked", "nodeType": "EventDefinition", "parameters": { - "id": 733, + "id": 738, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 732, + "id": 737, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 734, - "src": "1818:11:2", + "scope": 739, + "src": "1882:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1821,10 +1934,10 @@ "typeString": "address" }, "typeName": { - "id": 731, + "id": 736, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1818:7:2", + "src": "1882:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1835,25 +1948,25 @@ "visibility": "internal" } ], - "src": "1817:13:2" + "src": "1881:13:2" }, - "src": "1797:34:2" + "src": "1861:34:2" }, { "constant": false, "documentation": { - "id": 735, + "id": 740, "nodeType": "StructuredDocumentation", - "src": "1835:13:2", + "src": "1899:13:2", "text": "@dev Data" }, - "id": 737, + "id": 742, "mutability": "immutable", "name": "pot", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1851:31:2", + "scope": 1106, + "src": "1915:31:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1862,11 +1975,11 @@ }, "typeName": { "contractScope": null, - "id": 736, + "id": 741, "name": "PotLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 664, - "src": "1851:7:2", + "src": "1915:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" @@ -1877,13 +1990,13 @@ }, { "constant": false, - "id": 739, + "id": 744, "mutability": "immutable", "name": "chief", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1886:36:2", + "scope": 1106, + "src": "1950:36:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1892,11 +2005,11 @@ }, "typeName": { "contractScope": null, - "id": 738, + "id": 743, "name": "DSChiefLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 672, - "src": "1886:11:2", + "src": "1950:11:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" @@ -1907,13 +2020,13 @@ }, { "constant": false, - "id": 741, + "id": 746, "mutability": "immutable", "name": "flipper", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1926:38:2", + "scope": 1106, + "src": "1990:38:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1922,11 +2035,11 @@ }, "typeName": { "contractScope": null, - "id": 740, + "id": 745, "name": "FlipperLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 697, - "src": "1926:11:2", + "src": "1990:11:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" @@ -1938,18 +2051,18 @@ { "constant": true, "documentation": { - "id": 742, + "id": 747, "nodeType": "StructuredDocumentation", - "src": "1969:13:2", + "src": "2033:13:2", "text": "@dev Math" }, - "id": 747, + "id": 752, "mutability": "constant", "name": "RAY", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1985:31:2", + "scope": 1106, + "src": "2049:31:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1957,10 +2070,10 @@ "typeString": "uint256" }, "typeName": { - "id": 743, + "id": 748, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1985:7:2", + "src": "2049:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1972,7 +2085,7 @@ "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" }, - "id": 746, + "id": 751, "isConstant": false, "isLValue": false, "isPure": true, @@ -1980,14 +2093,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 744, + "id": 749, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2008:2:2", + "src": "2072:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -2000,14 +2113,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3237", - "id": 745, + "id": 750, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2014:2:2", + "src": "2078:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_27_by_1", @@ -2015,7 +2128,7 @@ }, "value": "27" }, - "src": "2008:8:2", + "src": "2072:8:2", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" @@ -2025,26 +2138,26 @@ }, { "body": { - "id": 767, + "id": 772, "nodeType": "Block", - "src": "2105:73:2", + "src": "2169:73:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 765, + "id": 770, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 758, + "id": 763, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 756, - "src": "2155:1:2", + "referencedDeclaration": 761, + "src": "2219:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2058,7 +2171,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 764, + "id": 769, "isConstant": false, "isLValue": false, "isPure": false, @@ -2068,12 +2181,12 @@ "arguments": [ { "argumentTypes": null, - "id": 761, + "id": 766, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 751, - "src": "2165:1:2", + "referencedDeclaration": 756, + "src": "2229:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2089,32 +2202,32 @@ ], "expression": { "argumentTypes": null, - "id": 759, + "id": 764, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "2159:1:2", + "referencedDeclaration": 754, + "src": "2223:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 760, + "id": 765, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 1776, - "src": "2159:5:2", + "referencedDeclaration": 1807, + "src": "2223:5: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": 762, + "id": 767, "isConstant": false, "isLValue": false, "isPure": false, @@ -2122,7 +2235,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2159:8:2", + "src": "2223:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2133,76 +2246,76 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 763, + "id": 768, "name": "RAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 747, - "src": "2170:3:2", + "referencedDeclaration": 752, + "src": "2234:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2159:14:2", + "src": "2223:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2155:18:2", + "src": "2219:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 766, + "id": 771, "nodeType": "ExpressionStatement", - "src": "2155:18:2" + "src": "2219:18:2" } ] }, "documentation": null, - "id": 768, + "id": 773, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 754, + "id": 759, "modifierName": { "argumentTypes": null, - "id": 753, + "id": 758, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "2071:13:2", + "referencedDeclaration": 4198, + "src": "2135:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2071:13:2" + "src": "2135:13:2" } ], "name": "rmul", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 752, + "id": 757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 749, + "id": 754, "mutability": "mutable", "name": "x", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2035:9:2", + "scope": 773, + "src": "2099:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2210,10 +2323,10 @@ "typeString": "uint256" }, "typeName": { - "id": 748, + "id": 753, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2035:7:2", + "src": "2099:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2224,13 +2337,13 @@ }, { "constant": false, - "id": 751, + "id": 756, "mutability": "mutable", "name": "y", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2046:9:2", + "scope": 773, + "src": "2110:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2238,10 +2351,10 @@ "typeString": "uint256" }, "typeName": { - "id": 750, + "id": 755, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2046:7:2", + "src": "2110:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2251,21 +2364,21 @@ "visibility": "internal" } ], - "src": "2034:22:2" + "src": "2098:22:2" }, "returnParameters": { - "id": 757, + "id": 762, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 756, + "id": 761, "mutability": "mutable", "name": "z", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2094:9:2", + "scope": 773, + "src": "2158:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2273,10 +2386,10 @@ "typeString": "uint256" }, "typeName": { - "id": 755, + "id": 760, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2094:7:2", + "src": "2158:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2286,19 +2399,19 @@ "visibility": "internal" } ], - "src": "2093:11:2" + "src": "2157:11:2" }, - "scope": 1075, - "src": "2021:157:2", + "scope": 1106, + "src": "2085:157:2", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 801, + "id": 818, "nodeType": "Block", - "src": "2203:682:2", + "src": "2313:355:2", "statements": [ { "expression": { @@ -2306,12 +2419,12 @@ "arguments": [ { "argumentTypes": null, - "id": 772, + "id": 783, "name": "DEFAULT_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1161, - "src": "2224:18:2", + "referencedDeclaration": 1192, + "src": "2334:18:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2322,18 +2435,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 773, + "id": 784, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "2244:5:2", + "referencedDeclaration": 1494, + "src": "2354:5:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 774, + "id": 785, "isConstant": false, "isLValue": false, "isPure": false, @@ -2341,7 +2454,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2244:7:2", + "src": "2354:7:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -2360,18 +2473,18 @@ "typeString": "address" } ], - "id": 771, + "id": 782, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "2213:10:2", + "referencedDeclaration": 1375, + "src": "2323:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 775, + "id": 786, "isConstant": false, "isLValue": false, "isPure": false, @@ -2379,16 +2492,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2213:39:2", + "src": "2323:39:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 776, + "id": 787, "nodeType": "ExpressionStatement", - "src": "2213:39:2" + "src": "2323:39:2" }, { "expression": { @@ -2396,12 +2509,102 @@ "arguments": [ { "argumentTypes": null, - "id": 778, - "name": "PAUSER_ROLE", + "id": 789, + "name": "ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 714, - "src": "2274:11:2", + "src": "2384:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 790, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "2396:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2396:7:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 788, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1375, + "src": "2373:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2373:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 793, + "nodeType": "ExpressionStatement", + "src": "2373:31:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 795, + "name": "PAUSER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 719, + "src": "2425:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2412,18 +2615,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 779, + "id": 796, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "2287:5:2", + "referencedDeclaration": 1494, + "src": "2438:5:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 780, + "id": 797, "isConstant": false, "isLValue": false, "isPure": false, @@ -2431,7 +2634,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2287:7:2", + "src": "2438:7:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -2450,18 +2653,18 @@ "typeString": "address" } ], - "id": 777, + "id": 794, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "2263:10:2", + "referencedDeclaration": 1375, + "src": "2414:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 781, + "id": 798, "isConstant": false, "isLValue": false, "isPure": false, @@ -2469,33 +2672,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2263:32:2", + "src": "2414:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 782, + "id": 799, "nodeType": "ExpressionStatement", - "src": "2263:32:2" + "src": "2414:32:2" }, { "expression": { "argumentTypes": null, - "id": 787, + "id": 804, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 783, + "id": 800, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "2421:3:2", + "referencedDeclaration": 742, + "src": "2490:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" @@ -2508,82 +2711,77 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307845413139304442444337616446323635323630656334644136653936373546643466354137386262", - "id": 785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2435:42:2", - "subdenomination": null, + "id": 802, + "name": "pot_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 775, + "src": "2504:4:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xEA190DBDC7adF265260ec4dA6e9675Fd4f5A78bb" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 784, + "id": 801, "name": "PotLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 664, - "src": "2427:7:2", + "src": "2496:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_PotLike_$664_$", "typeString": "type(contract PotLike)" } }, - "id": 786, + "id": 803, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2427:51:2", + "src": "2496:13:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "src": "2421:57:2", + "src": "2490:19:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 788, + "id": 805, "nodeType": "ExpressionStatement", - "src": "2421:57:2" + "src": "2490:19:2" }, { "expression": { "argumentTypes": null, - "id": 793, + "id": 810, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 789, + "id": 806, "name": "chief", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "2611:5:2", + "referencedDeclaration": 744, + "src": "2553:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" @@ -2596,82 +2794,77 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307862424646433736653934423334463732443936443035346233316636343234323439633133333764", - "id": 791, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2631:42:2", - "subdenomination": null, + "id": 808, + "name": "chief_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 777, + "src": "2573:6:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xbBFFC76e94B34F72D96D054b31f6424249c1337d" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 790, + "id": 807, "name": "DSChiefLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 672, - "src": "2619:11:2", + "src": "2561:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DSChiefLike_$672_$", "typeString": "type(contract DSChiefLike)" } }, - "id": 792, + "id": 809, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2619:55:2", + "src": "2561:19:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "src": "2611:63:2", + "src": "2553:27:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "id": 794, + "id": 811, "nodeType": "ExpressionStatement", - "src": "2611:63:2" + "src": "2553:27:2" }, { "expression": { "argumentTypes": null, - "id": 799, + "id": 816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 795, + "id": 812, "name": "flipper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "2814:7:2", + "referencedDeclaration": 746, + "src": "2631:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" @@ -2684,70 +2877,65 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307842343031333945613336443335643043394636613265363236303142363136463146666242443162", - "id": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2836:42:2", - "subdenomination": null, + "id": 814, + "name": "flipper_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "2653:8:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xB40139Ea36D35d0C9F6a2e62601B616F1FfbBD1b" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 796, + "id": 813, "name": "FlipperLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 697, - "src": "2824:11:2", + "src": "2641:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FlipperLike_$697_$", "typeString": "type(contract FlipperLike)" } }, - "id": 798, + "id": 815, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2824:55:2", + "src": "2641:21:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" } }, - "src": "2814:65:2", + "src": "2631:31:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" } }, - "id": 800, + "id": 817, "nodeType": "ExpressionStatement", - "src": "2814:65:2" + "src": "2631:31:2" } ] }, "documentation": null, - "id": 802, + "id": 819, "implemented": true, "kind": "constructor", "modifiers": [], @@ -2755,28 +2943,116 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 769, + "id": 780, "nodeType": "ParameterList", - "parameters": [], - "src": "2193:2:2" + "parameters": [ + { + "constant": false, + "id": 775, + "mutability": "mutable", + "name": "pot_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2258:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 774, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2258:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 777, + "mutability": "mutable", + "name": "chief_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2272:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 776, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2272:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 779, + "mutability": "mutable", + "name": "flipper_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2288:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2288:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2257:48:2" }, "returnParameters": { - "id": 770, + "id": 781, "nodeType": "ParameterList", "parameters": [], - "src": "2203:0:2" + "src": "2313:0:2" }, - "scope": 1075, - "src": "2182:703:2", + "scope": 1106, + "src": "2246:422:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 809, + "id": 826, "nodeType": "Block", - "src": "3042:19:2", + "src": "2825:19:2", "statements": [ { "expression": { @@ -2784,7 +3060,7 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 806, + "id": 823, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2792,13 +3068,13 @@ -19 ], "referencedDeclaration": -19, - "src": "3048:6:2", + "src": "2831:6:2", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 807, + "id": 824, "isConstant": false, "isLValue": false, "isPure": false, @@ -2806,26 +3082,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3048:8:2", + "src": "2831:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 808, + "id": 825, "nodeType": "ExpressionStatement", - "src": "3048:8:2" + "src": "2831:8:2" } ] }, "documentation": { - "id": 803, + "id": 820, "nodeType": "StructuredDocumentation", - "src": "2889:130:2", + "src": "2672:130:2", "text": "@notice Fallback function\n @dev Added not payable to revert transactions not matching any other function which send value" }, - "id": 810, + "id": 827, "implemented": true, "kind": "fallback", "modifiers": [], @@ -2833,45 +3109,228 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 804, + "id": 821, "nodeType": "ParameterList", "parameters": [], - "src": "3030:2:2" + "src": "2813:2:2" }, "returnParameters": { - "id": 805, + "id": 822, "nodeType": "ParameterList", "parameters": [], - "src": "3042:0:2" + "src": "2825:0:2" }, - "scope": 1075, - "src": "3022:39:2", + "scope": 1106, + "src": "2805:39:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { + "id": 840, + "nodeType": "Block", + "src": "2890:90:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 832, + "name": "ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 714, + "src": "2914:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 833, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2926:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2926:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 831, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1238, + "src": "2906:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2906:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43616c6c6572206973206e6f7420616e2061646d696e", + "id": 836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2939:24:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c42e6f213cb252dbb58053bcbc469c8ef3e91890f0261efae8e5d5a1aecda226", + "typeString": "literal_string \"Caller is not an admin\"" + }, + "value": "Caller is not an admin" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c42e6f213cb252dbb58053bcbc469c8ef3e91890f0261efae8e5d5a1aecda226", + "typeString": "literal_string \"Caller is not an admin\"" + } + ], + "id": 830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2898:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2898:66:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 838, + "nodeType": "ExpressionStatement", + "src": "2898:66:2" + }, + { + "id": 839, + "nodeType": "PlaceholderStatement", + "src": "2972:1:2" + } + ] + }, + "documentation": { + "id": 828, + "nodeType": "StructuredDocumentation", + "src": "2848:18:2", + "text": "@dev Modifiers" + }, + "id": 841, + "name": "onlyAdmin", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { "id": 829, + "nodeType": "ParameterList", + "parameters": [], + "src": "2887:2:2" + }, + "src": "2869:111:2", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 860, "nodeType": "Block", - "src": "3415:46:2", + "src": "3335:46:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 825, + "id": 856, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 823, + "id": 854, "name": "roots", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "3421:5:2", + "referencedDeclaration": 722, + "src": "3341:5:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" @@ -2881,39 +3340,39 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 824, + "id": 855, "name": "rootHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 814, - "src": "3429:10:2", + "referencedDeclaration": 845, + "src": "3349:10:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "src": "3421:18:2", + "src": "3341:18:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 826, + "id": 857, "nodeType": "ExpressionStatement", - "src": "3421:18:2" + "src": "3341:18:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 827, + "id": 858, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3452:4:2", + "src": "3372:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2921,79 +3380,79 @@ }, "value": "true" }, - "functionReturnParameters": 822, - "id": 828, + "functionReturnParameters": 853, + "id": 859, "nodeType": "Return", - "src": "3445:11:2" + "src": "3365:11:2" } ] }, "documentation": { - "id": 811, + "id": 842, "nodeType": "StructuredDocumentation", - "src": "3065:245:2", + "src": "2985:245:2", "text": "@notice Set Merkle Tree Root Hashes array\n @dev Called by owner to update roots for different address batches by templateId\n @param rootHashes Root hashes of the Merkle Trees by templateId\n @return True if successfully updated" }, "functionSelector": "aca57703", - "id": 830, + "id": 861, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 817, + "id": 848, "modifierName": { "argumentTypes": null, - "id": 816, - "name": "onlyOwner", + "id": 847, + "name": "onlyAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "3376:9:2", + "referencedDeclaration": 841, + "src": "3296:9:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3376:9:2" + "src": "3296:9:2" }, { "arguments": null, - "id": 819, + "id": 850, "modifierName": { "argumentTypes": null, - "id": 818, + "id": 849, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "3386:13:2", + "referencedDeclaration": 4198, + "src": "3306:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3386:13:2" + "src": "3306:13:2" } ], "name": "setRootHashes", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 815, + "id": 846, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 814, + "id": 845, "mutability": "mutable", "name": "rootHashes", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 830, - "src": "3336:29:2", + "scope": 861, + "src": "3256:29:2", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -3002,19 +3461,19 @@ }, "typeName": { "baseType": { - "id": 812, + "id": 843, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3336:7:2", + "src": "3256:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 813, + "id": 844, "length": null, "nodeType": "ArrayTypeName", - "src": "3336:9:2", + "src": "3256:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -3024,21 +3483,21 @@ "visibility": "internal" } ], - "src": "3335:31:2" + "src": "3255:31:2" }, "returnParameters": { - "id": 822, + "id": 853, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 821, + "id": 852, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 830, - "src": "3409:4:2", + "scope": 861, + "src": "3329:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3046,10 +3505,10 @@ "typeString": "bool" }, "typeName": { - "id": 820, + "id": 851, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3409:4:2", + "src": "3329:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3059,34 +3518,34 @@ "visibility": "internal" } ], - "src": "3408:6:2" + "src": "3328:6:2" }, - "scope": 1075, - "src": "3313:148:2", + "scope": 1106, + "src": "3233:148:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 870, + "id": 901, "nodeType": "Block", - "src": "3713:129:2", + "src": "3633:129:2", "statements": [ { "assignments": [ - 841 + 872 ], "declarations": [ { "constant": false, - "id": 841, + "id": 872, "mutability": "mutable", "name": "slice", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 870, - "src": "3719:13:2", + "scope": 901, + "src": "3639:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3094,10 +3553,10 @@ "typeString": "uint256" }, "typeName": { - "id": 840, + "id": 871, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3719:7:2", + "src": "3639:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3107,18 +3566,18 @@ "visibility": "internal" } ], - "id": 846, + "id": 877, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 844, + "id": 875, "name": "guy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 833, - "src": "3743:3:2", + "referencedDeclaration": 864, + "src": "3663:3:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3134,18 +3593,18 @@ ], "expression": { "argumentTypes": null, - "id": 842, + "id": 873, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3735:3:2", + "referencedDeclaration": 742, + "src": "3655:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 843, + "id": 874, "isConstant": false, "isLValue": false, "isPure": false, @@ -3153,13 +3612,13 @@ "memberName": "pie", "nodeType": "MemberAccess", "referencedDeclaration": 648, - "src": "3735:7:2", + "src": "3655:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 845, + "id": 876, "isConstant": false, "isLValue": false, "isPure": false, @@ -3167,7 +3626,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3735:12:2", + "src": "3655:12:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3175,22 +3634,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3719:28:2" + "src": "3639:28:2" }, { "assignments": [ - 848 + 879 ], "declarations": [ { "constant": false, - "id": 848, + "id": 879, "mutability": "mutable", "name": "chi", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 870, - "src": "3753:11:2", + "scope": 901, + "src": "3673:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3198,10 +3657,10 @@ "typeString": "uint256" }, "typeName": { - "id": 847, + "id": 878, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3753:7:2", + "src": "3673:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3211,7 +3670,7 @@ "visibility": "internal" } ], - "id": 862, + "id": 893, "initialValue": { "argumentTypes": null, "condition": { @@ -3223,19 +3682,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 853, + "id": 884, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 849, + "id": 880, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -17, - "src": "3768:3:2", + "src": "3688:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3250,18 +3709,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 850, + "id": 881, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3774:3:2", + "referencedDeclaration": 742, + "src": "3694:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 851, + "id": 882, "isConstant": false, "isLValue": false, "isPure": false, @@ -3269,13 +3728,13 @@ "memberName": "rho", "nodeType": "MemberAccess", "referencedDeclaration": 658, - "src": "3774:7:2", + "src": "3694:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 852, + "id": 883, "isConstant": false, "isLValue": false, "isPure": false, @@ -3283,28 +3742,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3774:9:2", + "src": "3694:9:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3768:15:2", + "src": "3688:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 854, + "id": 885, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3767:17:2", + "src": "3687:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3317,18 +3776,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 858, + "id": 889, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3800:3:2", + "referencedDeclaration": 742, + "src": "3720:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 859, + "id": 890, "isConstant": false, "isLValue": false, "isPure": false, @@ -3336,13 +3795,13 @@ "memberName": "chi", "nodeType": "MemberAccess", "referencedDeclaration": 653, - "src": "3800:7:2", + "src": "3720:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 860, + "id": 891, "isConstant": false, "isLValue": false, "isPure": false, @@ -3350,20 +3809,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3800:9:2", + "src": "3720:9:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 861, + "id": 892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "3767:42:2", + "src": "3687:42:2", "trueExpression": { "argumentTypes": null, "arguments": [], @@ -3371,18 +3830,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 855, + "id": 886, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3787:3:2", + "referencedDeclaration": 742, + "src": "3707:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 856, + "id": 887, "isConstant": false, "isLValue": false, "isPure": false, @@ -3390,13 +3849,13 @@ "memberName": "drip", "nodeType": "MemberAccess", "referencedDeclaration": 663, - "src": "3787:8:2", + "src": "3707:8:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 857, + "id": 888, "isConstant": false, "isLValue": false, "isPure": false, @@ -3404,7 +3863,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3787:10:2", + "src": "3707:10:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3417,24 +3876,24 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3753:56:2" + "src": "3673:56:2" }, { "expression": { "argumentTypes": null, - "id": 868, + "id": 899, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 863, + "id": 894, "name": "wad", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 838, - "src": "3815:3:2", + "referencedDeclaration": 869, + "src": "3735:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3447,12 +3906,12 @@ "arguments": [ { "argumentTypes": null, - "id": 865, + "id": 896, "name": "slice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 841, - "src": "3826:5:2", + "referencedDeclaration": 872, + "src": "3746:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3460,12 +3919,12 @@ }, { "argumentTypes": null, - "id": 866, + "id": 897, "name": "chi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 848, - "src": "3833:3:2", + "referencedDeclaration": 879, + "src": "3753:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3483,18 +3942,18 @@ "typeString": "uint256" } ], - "id": 864, + "id": 895, "name": "rmul", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "3821:4:2", + "referencedDeclaration": 773, + "src": "3741:4:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) view returns (uint256)" } }, - "id": 867, + "id": 898, "isConstant": false, "isLValue": false, "isPure": false, @@ -3502,71 +3961,71 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3821:16:2", + "src": "3741:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3815:22:2", + "src": "3735:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 869, + "id": 900, "nodeType": "ExpressionStatement", - "src": "3815:22:2" + "src": "3735:22:2" } ] }, "documentation": { - "id": 831, + "id": 862, "nodeType": "StructuredDocumentation", - "src": "3465:169:2", + "src": "3385:169:2", "text": "@notice Return the accrued interest of guy on Pot\n @dev Based on Chai dai() function\n @param guy Address to check\n @return wad Accrued interest of guy" }, - "id": 871, + "id": 902, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 836, + "id": 867, "modifierName": { "argumentTypes": null, - "id": 835, + "id": 866, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "3677:13:2", + "referencedDeclaration": 4198, + "src": "3597:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3677:13:2" + "src": "3597:13:2" } ], "name": "_dai", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 834, + "id": 865, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 833, + "id": 864, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 871, - "src": "3651:11:2", + "scope": 902, + "src": "3571:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3574,10 +4033,10 @@ "typeString": "address" }, "typeName": { - "id": 832, + "id": 863, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3651:7:2", + "src": "3571:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3588,21 +4047,21 @@ "visibility": "internal" } ], - "src": "3650:13:2" + "src": "3570:13:2" }, "returnParameters": { - "id": 839, + "id": 870, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 838, + "id": 869, "mutability": "mutable", "name": "wad", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 871, - "src": "3700:11:2", + "scope": 902, + "src": "3620:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3610,10 +4069,10 @@ "typeString": "uint256" }, "typeName": { - "id": 837, + "id": 868, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3700:7:2", + "src": "3620:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3623,19 +4082,19 @@ "visibility": "internal" } ], - "src": "3699:13:2" + "src": "3619:13:2" }, - "scope": 1075, - "src": "3637:205:2", + "scope": 1106, + "src": "3557:205:2", "stateMutability": "view", "virtual": false, "visibility": "private" }, { "body": { - "id": 918, + "id": 949, "nodeType": "Block", - "src": "4094:266:2", + "src": "4014:266:2", "statements": [ { "expression": { @@ -3647,7 +4106,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 887, + "id": 918, "isConstant": false, "isLValue": false, "isPure": false, @@ -3659,18 +4118,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 883, + "id": 914, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4113:3:2", + "src": "4033:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 884, + "id": 915, "isConstant": false, "isLValue": false, "isPure": false, @@ -3678,7 +4137,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4113:10:2", + "src": "4033:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3692,18 +4151,18 @@ "typeString": "address payable" } ], - "id": 882, + "id": 913, "name": "_dai", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 871, - "src": "4108:4:2", + "referencedDeclaration": 902, + "src": "4028:4:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 885, + "id": 916, "isConstant": false, "isLValue": false, "isPure": false, @@ -3711,7 +4170,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4108:16:2", + "src": "4028:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3723,14 +4182,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 886, + "id": 917, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4128:7:2", + "src": "4048:7:2", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", @@ -3738,7 +4197,7 @@ }, "value": "1" }, - "src": "4108:27:2", + "src": "4028:27:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3747,14 +4206,14 @@ { "argumentTypes": null, "hexValue": "43616c6c657220686173206e6f7420616363727565642031206f72206d6f72652044616920696e746572657374206f6e20506f74", - "id": 888, + "id": 919, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4137:54:2", + "src": "4057:54:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_94e2bcffd09237077ab7bf5d72c9dbecf83833ba747ce44f2fb8b96ffffa64a1", @@ -3774,7 +4233,7 @@ "typeString": "literal_string \"Caller has not accrued 1 or more Dai interest on Pot\"" } ], - "id": 881, + "id": 912, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3782,13 +4241,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4100:7:2", + "src": "4020:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 889, + "id": 920, "isConstant": false, "isLValue": false, "isPure": false, @@ -3796,21 +4255,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4100:92:2", + "src": "4020:92:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 890, + "id": 921, "nodeType": "ExpressionStatement", - "src": "4100:92:2" + "src": "4020:92:2" }, { "condition": { "argumentTypes": null, - "id": 898, + "id": 929, "isConstant": false, "isLValue": false, "isPure": false, @@ -3818,7 +4277,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4202:43:2", + "src": "4122:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -3826,18 +4285,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 895, + "id": 926, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4234:3:2", + "src": "4154:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 896, + "id": 927, "isConstant": false, "isLValue": false, "isPure": false, @@ -3845,7 +4304,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4234:10:2", + "src": "4154:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3863,26 +4322,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 891, + "id": 922, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4203:9:2", + "referencedDeclaration": 726, + "src": "4123:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 893, + "id": 924, "indexExpression": { "argumentTypes": null, - "id": 892, + "id": 923, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "4213:10:2", + "referencedDeclaration": 905, + "src": "4133:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3893,27 +4352,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4203:21:2", + "src": "4123:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 894, + "id": 925, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "4203:30:2", + "referencedDeclaration": 4016, + "src": "4123:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 897, + "id": 928, "isConstant": false, "isLValue": false, "isPure": false, @@ -3921,7 +4380,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4203:42:2", + "src": "4123:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3934,13 +4393,13 @@ } }, "falseBody": null, - "id": 910, + "id": 941, "nodeType": "IfStatement", - "src": "4198:108:2", + "src": "4118:108:2", "trueBody": { - "id": 909, + "id": 940, "nodeType": "Block", - "src": "4247:59:2", + "src": "4167:59:2", "statements": [ { "expression": { @@ -3953,18 +4412,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 904, + "id": 935, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4287:3:2", + "src": "4207:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 905, + "id": 936, "isConstant": false, "isLValue": false, "isPure": false, @@ -3972,7 +4431,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4287:10:2", + "src": "4207:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3990,26 +4449,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 900, + "id": 931, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4261:9:2", + "referencedDeclaration": 726, + "src": "4181:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 902, + "id": 933, "indexExpression": { "argumentTypes": null, - "id": 901, + "id": 932, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "4271:10:2", + "referencedDeclaration": 905, + "src": "4191:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4020,27 +4479,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4261:21:2", + "src": "4181:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 903, + "id": 934, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "4261:25:2", + "referencedDeclaration": 3970, + "src": "4181:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 906, + "id": 937, "isConstant": false, "isLValue": false, "isPure": false, @@ -4048,7 +4507,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4261:37:2", + "src": "4181:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4063,7 +4522,7 @@ "typeString": "bool" } ], - "id": 899, + "id": 930, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4071,13 +4530,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4253:7:2", + "src": "4173:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 907, + "id": 938, "isConstant": false, "isLValue": false, "isPure": false, @@ -4085,16 +4544,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4253:46:2", + "src": "4173:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 908, + "id": 939, "nodeType": "ExpressionStatement", - "src": "4253:46:2" + "src": "4173:46:2" } ] } @@ -4107,18 +4566,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 912, + "id": 943, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4327:3:2", + "src": "4247:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 913, + "id": 944, "isConstant": false, "isLValue": false, "isPure": false, @@ -4126,7 +4585,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4327:10:2", + "src": "4247:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4140,18 +4599,18 @@ "typeString": "address payable" } ], - "id": 911, + "id": 942, "name": "PotChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 726, - "src": "4316:10:2", + "referencedDeclaration": 731, + "src": "4236:10:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 914, + "id": 945, "isConstant": false, "isLValue": false, "isPure": false, @@ -4159,29 +4618,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4316:22:2", + "src": "4236:22:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 915, + "id": 946, "nodeType": "EmitStatement", - "src": "4311:27:2" + "src": "4231:27:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 916, + "id": 947, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4351:4:2", + "src": "4271:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4189,60 +4648,60 @@ }, "value": "true" }, - "functionReturnParameters": 880, - "id": 917, + "functionReturnParameters": 911, + "id": 948, "nodeType": "Return", - "src": "4344:11:2" + "src": "4264:11:2" } ] }, "documentation": { - "id": 872, + "id": 903, "nodeType": "StructuredDocumentation", - "src": "3846:165:2", + "src": "3766:165:2", "text": "@notice Pot Challenge\n @dev Keeps track of the address of the caller if successful\n @return True if the caller successfully checked for activity on Pot" }, "functionSelector": "baf2868b", - "id": 919, + "id": 950, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 877, + "id": 908, "modifierName": { "argumentTypes": null, - "id": 876, + "id": 907, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "4065:13:2", + "referencedDeclaration": 4198, + "src": "3985:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4065:13:2" + "src": "3985:13:2" } ], "name": "potChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 875, + "id": 906, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 874, + "id": 905, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 919, - "src": "4036:18:2", + "scope": 950, + "src": "3956:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4250,10 +4709,10 @@ "typeString": "uint256" }, "typeName": { - "id": 873, + "id": 904, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4036:7:2", + "src": "3956:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4263,21 +4722,21 @@ "visibility": "internal" } ], - "src": "4035:20:2" + "src": "3955:20:2" }, "returnParameters": { - "id": 880, + "id": 911, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 879, + "id": 910, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 919, - "src": "4088:4:2", + "scope": 950, + "src": "4008:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4285,10 +4744,10 @@ "typeString": "bool" }, "typeName": { - "id": 878, + "id": 909, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4088:4:2", + "src": "4008:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4298,19 +4757,19 @@ "visibility": "internal" } ], - "src": "4087:6:2" + "src": "4007:6:2" }, - "scope": 1075, - "src": "4014:346:2", + "scope": 1106, + "src": "3934:346:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 967, + "id": 998, "nodeType": "Block", - "src": "4622:263:2", + "src": "4542:264:2", "statements": [ { "expression": { @@ -4322,7 +4781,7 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 936, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, @@ -4334,18 +4793,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 932, + "id": 963, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4648:3:2", + "src": "4568:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 933, + "id": 964, "isConstant": false, "isLValue": false, "isPure": false, @@ -4353,7 +4812,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4648:10:2", + "src": "4568:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4369,18 +4828,18 @@ ], "expression": { "argumentTypes": null, - "id": 930, + "id": 961, "name": "chief", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "4636:5:2", + "referencedDeclaration": 744, + "src": "4556:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "id": 931, + "id": 962, "isConstant": false, "isLValue": false, "isPure": false, @@ -4388,13 +4847,13 @@ "memberName": "votes", "nodeType": "MemberAccess", "referencedDeclaration": 671, - "src": "4636:11:2", + "src": "4556:11:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$", "typeString": "function (address) view external returns (bytes32)" } }, - "id": 934, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, @@ -4402,7 +4861,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4636:23:2", + "src": "4556:23:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -4414,14 +4873,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783030", - "id": 935, + "id": 966, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4663:4:2", + "src": "4583:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4429,7 +4888,7 @@ }, "value": "0x00" }, - "src": "4636:31:2", + "src": "4556:31:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4437,21 +4896,21 @@ }, { "argumentTypes": null, - "hexValue": "43616c6c6572206973206e6f7420766f74696e6720696e206120476f7665726e616e636520506f6c6c", - "id": 937, + "hexValue": "43616c6c6572206973206e6f7420766f74696e6720696e20616e20457865637574697665205370656c6c", + "id": 968, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4669:43:2", + "src": "4589:44:2", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_67b208a9b43a5545a1a8888c99a64b4cd7f58aa52580dee6f4ec112b3e80c46b", - "typeString": "literal_string \"Caller is not voting in a Governance Poll\"" + "typeIdentifier": "t_stringliteral_65880bfcd366c16deddf50d8f8606d011e26303e9f1a09e543bd3e08c12c2544", + "typeString": "literal_string \"Caller is not voting in an Executive Spell\"" }, - "value": "Caller is not voting in a Governance Poll" + "value": "Caller is not voting in an Executive Spell" } ], "expression": { @@ -4461,11 +4920,11 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_67b208a9b43a5545a1a8888c99a64b4cd7f58aa52580dee6f4ec112b3e80c46b", - "typeString": "literal_string \"Caller is not voting in a Governance Poll\"" + "typeIdentifier": "t_stringliteral_65880bfcd366c16deddf50d8f8606d011e26303e9f1a09e543bd3e08c12c2544", + "typeString": "literal_string \"Caller is not voting in an Executive Spell\"" } ], - "id": 929, + "id": 960, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4473,13 +4932,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4628:7:2", + "src": "4548:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 938, + "id": 969, "isConstant": false, "isLValue": false, "isPure": false, @@ -4487,21 +4946,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4628:85:2", + "src": "4548:86:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 939, + "id": 970, "nodeType": "ExpressionStatement", - "src": "4628:85:2" + "src": "4548:86:2" }, { "condition": { "argumentTypes": null, - "id": 947, + "id": 978, "isConstant": false, "isLValue": false, "isPure": false, @@ -4509,7 +4968,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4723:43:2", + "src": "4644:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -4517,18 +4976,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 944, + "id": 975, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4755:3:2", + "src": "4676:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 945, + "id": 976, "isConstant": false, "isLValue": false, "isPure": false, @@ -4536,7 +4995,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4755:10:2", + "src": "4676:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4554,26 +5013,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 940, + "id": 971, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4724:9:2", + "referencedDeclaration": 726, + "src": "4645:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 942, + "id": 973, "indexExpression": { "argumentTypes": null, - "id": 941, + "id": 972, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "4734:10:2", + "referencedDeclaration": 953, + "src": "4655:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4584,27 +5043,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4724:21:2", + "src": "4645:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 943, + "id": 974, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "4724:30:2", + "referencedDeclaration": 4016, + "src": "4645:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 946, + "id": 977, "isConstant": false, "isLValue": false, "isPure": false, @@ -4612,7 +5071,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4724:42:2", + "src": "4645:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4625,13 +5084,13 @@ } }, "falseBody": null, - "id": 959, + "id": 990, "nodeType": "IfStatement", - "src": "4719:108:2", + "src": "4640:108:2", "trueBody": { - "id": 958, + "id": 989, "nodeType": "Block", - "src": "4768:59:2", + "src": "4689:59:2", "statements": [ { "expression": { @@ -4644,18 +5103,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 953, + "id": 984, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4808:3:2", + "src": "4729:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 954, + "id": 985, "isConstant": false, "isLValue": false, "isPure": false, @@ -4663,7 +5122,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4808:10:2", + "src": "4729:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4681,26 +5140,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 949, + "id": 980, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4782:9:2", + "referencedDeclaration": 726, + "src": "4703:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 951, + "id": 982, "indexExpression": { "argumentTypes": null, - "id": 950, + "id": 981, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "4792:10:2", + "referencedDeclaration": 953, + "src": "4713:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4711,27 +5170,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4782:21:2", + "src": "4703:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 952, + "id": 983, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "4782:25:2", + "referencedDeclaration": 3970, + "src": "4703:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 955, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, @@ -4739,7 +5198,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4782:37:2", + "src": "4703:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4754,7 +5213,7 @@ "typeString": "bool" } ], - "id": 948, + "id": 979, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4762,13 +5221,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4774:7:2", + "src": "4695:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 956, + "id": 987, "isConstant": false, "isLValue": false, "isPure": false, @@ -4776,16 +5235,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4774:46:2", + "src": "4695:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 957, + "id": 988, "nodeType": "ExpressionStatement", - "src": "4774:46:2" + "src": "4695:46:2" } ] } @@ -4798,18 +5257,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 961, + "id": 992, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4852:3:2", + "src": "4773:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 962, + "id": 993, "isConstant": false, "isLValue": false, "isPure": false, @@ -4817,7 +5276,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4852:10:2", + "src": "4773:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4831,18 +5290,18 @@ "typeString": "address payable" } ], - "id": 960, + "id": 991, "name": "DSChiefChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "4837:14:2", + "referencedDeclaration": 735, + "src": "4758:14:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 963, + "id": 994, "isConstant": false, "isLValue": false, "isPure": false, @@ -4850,29 +5309,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4837:26:2", + "src": "4758:26:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 964, + "id": 995, "nodeType": "EmitStatement", - "src": "4832:31:2" + "src": "4753:31:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 965, + "id": 996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4876:4:2", + "src": "4797:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4880,60 +5339,60 @@ }, "value": "true" }, - "functionReturnParameters": 928, - "id": 966, + "functionReturnParameters": 959, + "id": 997, "nodeType": "Return", - "src": "4869:11:2" + "src": "4790:11:2" } ] }, "documentation": { - "id": 920, + "id": 951, "nodeType": "StructuredDocumentation", - "src": "4364:173:2", + "src": "4284:173:2", "text": "@notice DSChief Challenge\n @dev Keeps track of the address of the caller if successful\n @return True if the caller successfully checked for activity on DSChief" }, "functionSelector": "f36618a6", - "id": 968, + "id": 999, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 925, + "id": 956, "modifierName": { "argumentTypes": null, - "id": 924, + "id": 955, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "4593:13:2", + "referencedDeclaration": 4198, + "src": "4513:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4593:13:2" + "src": "4513:13:2" } ], "name": "chiefChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 923, + "id": 954, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 922, + "id": 953, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 968, - "src": "4564:18:2", + "scope": 999, + "src": "4484:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4941,10 +5400,10 @@ "typeString": "uint256" }, "typeName": { - "id": 921, + "id": 952, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4564:7:2", + "src": "4484:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4954,21 +5413,21 @@ "visibility": "internal" } ], - "src": "4563:20:2" + "src": "4483:20:2" }, "returnParameters": { - "id": 928, + "id": 959, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 927, + "id": 958, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 968, - "src": "4616:4:2", + "scope": 999, + "src": "4536:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4976,10 +5435,10 @@ "typeString": "bool" }, "typeName": { - "id": 926, + "id": 957, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4616:4:2", + "src": "4536:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4989,19 +5448,19 @@ "visibility": "internal" } ], - "src": "4615:6:2" + "src": "4535:6:2" }, - "scope": 1075, - "src": "4540:345:2", + "scope": 1106, + "src": "4460:346:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1019, + "id": 1050, "nodeType": "Block", - "src": "5192:299:2", + "src": "5113:299:2", "statements": [ { "expression": { @@ -5013,7 +5472,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 988, + "id": 1019, "isConstant": false, "isLValue": false, "isPure": false, @@ -5025,12 +5484,12 @@ "arguments": [ { "argumentTypes": null, - "id": 983, + "id": 1014, "name": "bidId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "5219:5:2", + "referencedDeclaration": 1004, + "src": "5140:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5046,18 +5505,18 @@ ], "expression": { "argumentTypes": null, - "id": 981, + "id": 1012, "name": "flipper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "5206:7:2", + "referencedDeclaration": 746, + "src": "5127:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" } }, - "id": 982, + "id": 1013, "isConstant": false, "isLValue": false, "isPure": false, @@ -5065,13 +5524,13 @@ "memberName": "bids", "nodeType": "MemberAccess", "referencedDeclaration": 696, - "src": "5206:12:2", + "src": "5127:12:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Bid_$689_memory_ptr_$", "typeString": "function (uint256) view external returns (struct FlipperLike.Bid memory)" } }, - "id": 984, + "id": 1015, "isConstant": false, "isLValue": false, "isPure": false, @@ -5079,14 +5538,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5206:19:2", + "src": "5127:19:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Bid_$689_memory_ptr", "typeString": "struct FlipperLike.Bid memory" } }, - "id": 985, + "id": 1016, "isConstant": false, "isLValue": true, "isPure": false, @@ -5094,7 +5553,7 @@ "memberName": "guy", "nodeType": "MemberAccess", "referencedDeclaration": 678, - "src": "5206:23:2", + "src": "5127:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5106,18 +5565,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 986, + "id": 1017, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5233:3:2", + "src": "5154:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 987, + "id": 1018, "isConstant": false, "isLValue": false, "isPure": false, @@ -5125,13 +5584,13 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5233:10:2", + "src": "5154:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "5206:37:2", + "src": "5127:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5140,14 +5599,14 @@ { "argumentTypes": null, "hexValue": "43616c6c6572206973206e6f742074686520686967682062696464657220696e207468652063757272656e742042696420696e20436f6c6c61746572616c2041756374696f6e73", - "id": 989, + "id": 1020, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5245:73:2", + "src": "5166:73:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e88b03e76bc82122d18e72f0c400e240eb0423ded12b22b77672909d807e7840", @@ -5167,7 +5626,7 @@ "typeString": "literal_string \"Caller is not the high bidder in the current Bid in Collateral Auctions\"" } ], - "id": 980, + "id": 1011, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5175,13 +5634,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5198:7:2", + "src": "5119:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 990, + "id": 1021, "isConstant": false, "isLValue": false, "isPure": false, @@ -5189,21 +5648,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5198:121:2", + "src": "5119:121:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 991, + "id": 1022, "nodeType": "ExpressionStatement", - "src": "5198:121:2" + "src": "5119:121:2" }, { "condition": { "argumentTypes": null, - "id": 999, + "id": 1030, "isConstant": false, "isLValue": false, "isPure": false, @@ -5211,7 +5670,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5329:43:2", + "src": "5250:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -5219,18 +5678,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 996, + "id": 1027, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5361:3:2", + "src": "5282:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 997, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, @@ -5238,7 +5697,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5361:10:2", + "src": "5282:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5256,26 +5715,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 992, + "id": 1023, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5330:9:2", + "referencedDeclaration": 726, + "src": "5251:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 994, + "id": 1025, "indexExpression": { "argumentTypes": null, - "id": 993, + "id": 1024, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5340:10:2", + "referencedDeclaration": 1002, + "src": "5261:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5286,27 +5745,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5330:21:2", + "src": "5251:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 995, + "id": 1026, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "5330:30:2", + "referencedDeclaration": 4016, + "src": "5251:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 998, + "id": 1029, "isConstant": false, "isLValue": false, "isPure": false, @@ -5314,7 +5773,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5330:42:2", + "src": "5251:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5327,13 +5786,13 @@ } }, "falseBody": null, - "id": 1011, + "id": 1042, "nodeType": "IfStatement", - "src": "5325:108:2", + "src": "5246:108:2", "trueBody": { - "id": 1010, + "id": 1041, "nodeType": "Block", - "src": "5374:59:2", + "src": "5295:59:2", "statements": [ { "expression": { @@ -5346,18 +5805,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1005, + "id": 1036, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5414:3:2", + "src": "5335:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1006, + "id": 1037, "isConstant": false, "isLValue": false, "isPure": false, @@ -5365,7 +5824,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5414:10:2", + "src": "5335:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5383,26 +5842,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1001, + "id": 1032, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5388:9:2", + "referencedDeclaration": 726, + "src": "5309:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 1003, + "id": 1034, "indexExpression": { "argumentTypes": null, - "id": 1002, + "id": 1033, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5398:10:2", + "referencedDeclaration": 1002, + "src": "5319:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5413,27 +5872,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5388:21:2", + "src": "5309:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1004, + "id": 1035, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "5388:25:2", + "referencedDeclaration": 3970, + "src": "5309:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 1007, + "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, @@ -5441,7 +5900,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5388:37:2", + "src": "5309:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5456,7 +5915,7 @@ "typeString": "bool" } ], - "id": 1000, + "id": 1031, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5464,13 +5923,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5380:7:2", + "src": "5301:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1008, + "id": 1039, "isConstant": false, "isLValue": false, "isPure": false, @@ -5478,16 +5937,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5380:46:2", + "src": "5301:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1009, + "id": 1040, "nodeType": "ExpressionStatement", - "src": "5380:46:2" + "src": "5301:46:2" } ] } @@ -5500,18 +5959,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1013, + "id": 1044, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5458:3:2", + "src": "5379:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1014, + "id": 1045, "isConstant": false, "isLValue": false, "isPure": false, @@ -5519,7 +5978,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5458:10:2", + "src": "5379:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5533,18 +5992,18 @@ "typeString": "address payable" } ], - "id": 1012, + "id": 1043, "name": "FlipperChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 734, - "src": "5443:14:2", + "referencedDeclaration": 739, + "src": "5364:14:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1015, + "id": 1046, "isConstant": false, "isLValue": false, "isPure": false, @@ -5552,29 +6011,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5443:26:2", + "src": "5364:26:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1016, + "id": 1047, "nodeType": "EmitStatement", - "src": "5438:31:2" + "src": "5359:31:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 1017, + "id": 1048, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5482:4:2", + "src": "5403:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5582,60 +6041,60 @@ }, "value": "true" }, - "functionReturnParameters": 979, - "id": 1018, + "functionReturnParameters": 1010, + "id": 1049, "nodeType": "Return", - "src": "5475:11:2" + "src": "5396:11:2" } ] }, "documentation": { - "id": 969, + "id": 1000, "nodeType": "StructuredDocumentation", - "src": "4889:201:2", + "src": "4810:201:2", "text": "@notice Flipper Challenge\n @dev Keeps track of the address of the caller if successful\n @dev guy, high bidder\n @return True if the caller successfully checked for activity on Flipper" }, "functionSelector": "9c1c94fd", - "id": 1020, + "id": 1051, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 976, + "id": 1007, "modifierName": { "argumentTypes": null, - "id": 975, + "id": 1006, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "5163:13:2", + "referencedDeclaration": 4198, + "src": "5084:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5163:13:2" + "src": "5084:13:2" } ], "name": "flipperChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 974, + "id": 1005, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 971, + "id": 1002, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5119:18:2", + "scope": 1051, + "src": "5040:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5643,10 +6102,10 @@ "typeString": "uint256" }, "typeName": { - "id": 970, + "id": 1001, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5119:7:2", + "src": "5040:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5657,13 +6116,13 @@ }, { "constant": false, - "id": 973, + "id": 1004, "mutability": "mutable", "name": "bidId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5139:13:2", + "scope": 1051, + "src": "5060:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5671,10 +6130,10 @@ "typeString": "uint256" }, "typeName": { - "id": 972, + "id": 1003, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5139:7:2", + "src": "5060:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5684,21 +6143,21 @@ "visibility": "internal" } ], - "src": "5118:35:2" + "src": "5039:35:2" }, "returnParameters": { - "id": 979, + "id": 1010, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 978, + "id": 1009, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5186:4:2", + "scope": 1051, + "src": "5107:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5706,10 +6165,10 @@ "typeString": "bool" }, "typeName": { - "id": 977, + "id": 1008, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5186:4:2", + "src": "5107:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5719,19 +6178,19 @@ "visibility": "internal" } ], - "src": "5185:6:2" + "src": "5106:6:2" }, - "scope": 1075, - "src": "5093:398:2", + "scope": 1106, + "src": "5014:398:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1039, + "id": 1070, "nodeType": "Block", - "src": "5750:53:2", + "src": "5671:53:2", "statements": [ { "expression": { @@ -5739,12 +6198,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1036, + "id": 1067, "name": "guy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "5794:3:2", + "referencedDeclaration": 1056, + "src": "5715:3:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5762,26 +6221,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1032, + "id": 1063, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5763:9:2", + "referencedDeclaration": 726, + "src": "5684:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 1034, + "id": 1065, "indexExpression": { "argumentTypes": null, - "id": 1033, + "id": 1064, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "5773:10:2", + "referencedDeclaration": 1054, + "src": "5694:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5792,27 +6251,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5763:21:2", + "src": "5684:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1035, + "id": 1066, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "5763:30:2", + "referencedDeclaration": 4016, + "src": "5684:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 1037, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, @@ -5820,67 +6279,67 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5763:35:2", + "src": "5684:35:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1031, - "id": 1038, + "functionReturnParameters": 1062, + "id": 1069, "nodeType": "Return", - "src": "5756:42:2" + "src": "5677:42:2" } ] }, "documentation": { - "id": 1021, + "id": 1052, "nodeType": "StructuredDocumentation", - "src": "5495:160:2", + "src": "5416:160:2", "text": "@notice Check if guy is a redeemer\n @dev Verify if the address of guy exists\n @param guy Address to verify\n @return True if guy is a redeemer" }, "functionSelector": "ebfa62b9", - "id": 1040, + "id": 1071, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1028, + "id": 1059, "modifierName": { "argumentTypes": null, - "id": 1027, + "id": 1058, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "5721:13:2", + "referencedDeclaration": 4198, + "src": "5642:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5721:13:2" + "src": "5642:13:2" } ], "name": "verify", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1026, + "id": 1057, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1023, + "id": 1054, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5674:18:2", + "scope": 1071, + "src": "5595:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5888,10 +6347,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1022, + "id": 1053, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5674:7:2", + "src": "5595:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5902,13 +6361,13 @@ }, { "constant": false, - "id": 1025, + "id": 1056, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5694:11:2", + "scope": 1071, + "src": "5615:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5916,10 +6375,10 @@ "typeString": "address" }, "typeName": { - "id": 1024, + "id": 1055, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5694:7:2", + "src": "5615:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5930,21 +6389,21 @@ "visibility": "internal" } ], - "src": "5673:33:2" + "src": "5594:33:2" }, "returnParameters": { - "id": 1031, + "id": 1062, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1030, + "id": 1061, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5744:4:2", + "scope": 1071, + "src": "5665:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5952,10 +6411,10 @@ "typeString": "bool" }, "typeName": { - "id": 1029, + "id": 1060, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5744:4:2", + "src": "5665:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5965,19 +6424,19 @@ "visibility": "internal" } ], - "src": "5743:6:2" + "src": "5664:6:2" }, - "scope": 1075, - "src": "5658:145:2", + "scope": 1106, + "src": "5579:145:2", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 1056, + "id": 1087, "nodeType": "Block", - "src": "5921:113:2", + "src": "5842:113:2", "statements": [ { "expression": { @@ -5988,12 +6447,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1046, + "id": 1077, "name": "PAUSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, - "src": "5943:11:2", + "referencedDeclaration": 719, + "src": "5864:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6003,18 +6462,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1047, + "id": 1078, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5956:3:2", + "src": "5877:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1048, + "id": 1079, "isConstant": false, "isLValue": false, "isPure": false, @@ -6022,7 +6481,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5956:10:2", + "src": "5877:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -6040,18 +6499,18 @@ "typeString": "address payable" } ], - "id": 1045, + "id": 1076, "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, - "src": "5935:7:2", + "referencedDeclaration": 1238, + "src": "5856:7:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) view returns (bool)" } }, - "id": 1049, + "id": 1080, "isConstant": false, "isLValue": false, "isPure": false, @@ -6059,7 +6518,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5935:32:2", + "src": "5856:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6069,14 +6528,14 @@ { "argumentTypes": null, "hexValue": "4d616b65724261646765733a206d75737420686176652070617573657220726f6c6520746f207061757365", - "id": 1050, + "id": 1081, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5969:45:2", + "src": "5890:45:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d33b68c439b8482d10dd00f9785755fa4ae9979ec8a8ee9bf8b872747d1b8f67", @@ -6096,7 +6555,7 @@ "typeString": "literal_string \"MakerBadges: must have pauser role to pause\"" } ], - "id": 1044, + "id": 1075, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -6104,13 +6563,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5927:7:2", + "src": "5848:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1051, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, @@ -6118,16 +6577,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5927:88:2", + "src": "5848:88:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1052, + "id": 1083, "nodeType": "ExpressionStatement", - "src": "5927:88:2" + "src": "5848:88:2" }, { "expression": { @@ -6135,18 +6594,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1053, + "id": 1084, "name": "_pause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4193, - "src": "6021:6:2", + "referencedDeclaration": 4224, + "src": "5942:6:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1054, + "id": 1085, "isConstant": false, "isLValue": false, "isPure": false, @@ -6154,27 +6613,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6021:8:2", + "src": "5942:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1055, + "id": 1086, "nodeType": "ExpressionStatement", - "src": "6021:8:2" + "src": "5942:8:2" } ] }, "documentation": { - "id": 1041, + "id": 1072, "nodeType": "StructuredDocumentation", - "src": "5807:85:2", + "src": "5728:85:2", "text": "@notice Pause all the functions\n @dev the caller must have the 'PAUSER_ROLE'" }, "functionSelector": "8456cb59", - "id": 1057, + "id": 1088, "implemented": true, "kind": "function", "modifiers": [], @@ -6182,28 +6641,28 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1042, + "id": 1073, "nodeType": "ParameterList", "parameters": [], - "src": "5909:2:2" + "src": "5830:2:2" }, "returnParameters": { - "id": 1043, + "id": 1074, "nodeType": "ParameterList", "parameters": [], - "src": "5921:0:2" + "src": "5842:0:2" }, - "scope": 1075, - "src": "5895:139:2", + "scope": 1106, + "src": "5816:139:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1073, + "id": 1104, "nodeType": "Block", - "src": "6156:127:2", + "src": "6077:127:2", "statements": [ { "expression": { @@ -6214,12 +6673,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1063, + "id": 1094, "name": "PAUSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, - "src": "6182:11:2", + "referencedDeclaration": 719, + "src": "6103:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6229,18 +6688,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1064, + "id": 1095, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "6195:3:2", + "src": "6116:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1065, + "id": 1096, "isConstant": false, "isLValue": false, "isPure": false, @@ -6248,7 +6707,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6195:10:2", + "src": "6116:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -6266,18 +6725,18 @@ "typeString": "address payable" } ], - "id": 1062, + "id": 1093, "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, - "src": "6174:7:2", + "referencedDeclaration": 1238, + "src": "6095:7:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) view returns (bool)" } }, - "id": 1066, + "id": 1097, "isConstant": false, "isLValue": false, "isPure": false, @@ -6285,7 +6744,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6174:32:2", + "src": "6095:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6295,14 +6754,14 @@ { "argumentTypes": null, "hexValue": "4d616b65724261646765733a206d75737420686176652070617573657220726f6c6520746f20756e7061757365", - "id": 1067, + "id": 1098, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6208:47:2", + "src": "6129:47:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e81d67bdac033cbd58eea8cc6d19c5b2672fe1faa73f3d7c71703b8e96106b7b", @@ -6322,7 +6781,7 @@ "typeString": "literal_string \"MakerBadges: must have pauser role to unpause\"" } ], - "id": 1061, + "id": 1092, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -6330,13 +6789,13 @@ -18 ], "referencedDeclaration": -18, - "src": "6166:7:2", + "src": "6087:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1068, + "id": 1099, "isConstant": false, "isLValue": false, "isPure": false, @@ -6344,16 +6803,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6166:90:2", + "src": "6087:90:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1069, + "id": 1100, "nodeType": "ExpressionStatement", - "src": "6166:90:2" + "src": "6087:90:2" }, { "expression": { @@ -6361,18 +6820,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1070, + "id": 1101, "name": "_unpause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4209, - "src": "6266:8:2", + "referencedDeclaration": 4240, + "src": "6187:8:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1071, + "id": 1102, "isConstant": false, "isLValue": false, "isPure": false, @@ -6380,27 +6839,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6266:10:2", + "src": "6187:10:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1072, + "id": 1103, "nodeType": "ExpressionStatement", - "src": "6266:10:2" + "src": "6187:10:2" } ] }, "documentation": { - "id": 1058, + "id": 1089, "nodeType": "StructuredDocumentation", - "src": "6038:87:2", + "src": "5959:87:2", "text": "@notice Unpause all the functions\n @dev the caller must have the 'PAUSER_ROLE'" }, "functionSelector": "3f4ba83a", - "id": 1074, + "id": 1105, "implemented": true, "kind": "function", "modifiers": [], @@ -6408,29 +6867,29 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1059, + "id": 1090, "nodeType": "ParameterList", "parameters": [], - "src": "6144:2:2" + "src": "6065:2:2" }, "returnParameters": { - "id": 1060, + "id": 1091, "nodeType": "ParameterList", "parameters": [], - "src": "6156:0:2" + "src": "6077:0:2" }, - "scope": 1075, - "src": "6128:155:2", + "scope": 1106, + "src": "6049:155:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 1076, - "src": "1381:4905:2" + "scope": 1107, + "src": "1381:4826:2" } ], - "src": "37:6250:2" + "src": "37:6171:2" }, "legacyAST": { "absolutePath": "/home/sencha/maker-badges/contracts/MakerBadges.sol", @@ -6442,13 +6901,13 @@ 697 ], "MakerBadges": [ - 1075 + 1106 ], "PotLike": [ 664 ] }, - "id": 1076, + "id": 1107, "license": "GPL-3.0", "nodeType": "SourceUnit", "nodes": [ @@ -6457,7 +6916,7 @@ "literals": [ "solidity", "0.6", - ".10" + ".11" ], "nodeType": "PragmaDirective", "src": "37:23:2" @@ -6476,8 +6935,8 @@ "file": "@openzeppelin/contracts/access/Ownable.sol", "id": 637, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1528, + "scope": 1107, + "sourceUnit": 1559, "src": "532:52:2", "symbolAliases": [], "unitAlias": "" @@ -6487,8 +6946,8 @@ "file": "@openzeppelin/contracts/access/AccessControl.sol", "id": 638, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1419, + "scope": 1107, + "sourceUnit": 1450, "src": "585:58:2", "symbolAliases": [], "unitAlias": "" @@ -6498,8 +6957,8 @@ "file": "@openzeppelin/contracts/utils/Pausable.sol", "id": 639, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 4211, + "scope": 1107, + "sourceUnit": 4242, "src": "644:52:2", "symbolAliases": [], "unitAlias": "" @@ -6509,8 +6968,8 @@ "file": "@openzeppelin/contracts/math/SafeMath.sol", "id": 640, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1864, + "scope": 1107, + "sourceUnit": 1895, "src": "697:51:2", "symbolAliases": [], "unitAlias": "" @@ -6520,8 +6979,8 @@ "file": "@openzeppelin/contracts/utils/EnumerableSet.sol", "id": 641, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 4121, + "scope": 1107, + "sourceUnit": 4152, "src": "749:57:2", "symbolAliases": [], "unitAlias": "" @@ -6803,7 +7262,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "808:243:2" }, { @@ -6909,7 +7368,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "1053:84:2" }, { @@ -7254,7 +7713,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "1139:240:2" }, { @@ -7267,10 +7726,10 @@ "id": 698, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1527, + "referencedDeclaration": 1558, "src": "1405:7:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$1527", + "typeIdentifier": "t_contract$_Ownable_$1558", "typeString": "contract Ownable" } }, @@ -7285,10 +7744,10 @@ "id": 700, "name": "AccessControl", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1418, + "referencedDeclaration": 1449, "src": "1414:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_AccessControl_$1418", + "typeIdentifier": "t_contract$_AccessControl_$1449", "typeString": "contract AccessControl" } }, @@ -7303,10 +7762,10 @@ "id": 702, "name": "Pausable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4210, + "referencedDeclaration": 4241, "src": "1429:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pausable_$4210", + "typeIdentifier": "t_contract$_Pausable_$4241", "typeString": "contract Pausable" } }, @@ -7316,21 +7775,21 @@ } ], "contractDependencies": [ - 1135, - 1418, - 1527, - 4210 + 1166, + 1449, + 1558, + 4241 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1075, + "id": 1106, "linearizedBaseContracts": [ - 1075, - 4210, - 1418, - 1527, - 1135 + 1106, + 4241, + 1449, + 1558, + 1166 ], "name": "MakerBadges", "nodeType": "ContractDefinition", @@ -7342,10 +7801,10 @@ "id": 704, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1863, + "referencedDeclaration": 1894, "src": "1470:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1863", + "typeIdentifier": "t_contract$_SafeMath_$1894", "typeString": "library SafeMath" } }, @@ -7369,10 +7828,10 @@ "id": 707, "name": "EnumerableSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4120, + "referencedDeclaration": 4151, "src": "1500:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_EnumerableSet_$4120", + "typeIdentifier": "t_contract$_EnumerableSet_$4151", "typeString": "library EnumerableSet" } }, @@ -7383,24 +7842,24 @@ "id": 708, "name": "EnumerableSet.AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, + "referencedDeclaration": 3947, "src": "1518:24:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } } }, { "constant": true, - "functionSelector": "e63ab1e9", + "functionSelector": "75b238fc", "id": 714, "mutability": "constant", - "name": "PAUSER_ROLE", + "name": "ADMIN_ROLE", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1547:62:2", + "scope": 1106, + "src": "1547:60:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -7422,7 +7881,7 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "5041555345525f524f4c45", + "hexValue": "41444d494e5f524f4c45", "id": 712, "isConstant": false, "isLValue": false, @@ -7430,7 +7889,90 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1595:13:2", + "src": "1594:12:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", + "typeString": "literal_string \"ADMIN_ROLE\"" + }, + "value": "ADMIN_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", + "typeString": "literal_string \"ADMIN_ROLE\"" + } + ], + "id": 711, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1584:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1584:23:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "e63ab1e9", + "id": 719, + "mutability": "constant", + "name": "PAUSER_ROLE", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1106, + "src": "1611:62:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 715, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1611:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "5041555345525f524f4c45", + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1659:13:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a", @@ -7446,18 +7988,18 @@ "typeString": "literal_string \"PAUSER_ROLE\"" } ], - "id": 711, + "id": 716, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "1585:9:2", + "src": "1649:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 713, + "id": 718, "isConstant": false, "isLValue": false, "isPure": true, @@ -7465,7 +8007,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1585:24:2", + "src": "1649:24:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -7477,13 +8019,13 @@ { "constant": false, "functionSelector": "c2b40ae4", - "id": 717, + "id": 722, "mutability": "mutable", "name": "roots", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1614:22:2", + "scope": 1106, + "src": "1678:22:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -7492,19 +8034,19 @@ }, "typeName": { "baseType": { - "id": 715, + "id": 720, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1614:7:2", + "src": "1678:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 716, + "id": 721, "length": null, "nodeType": "ArrayTypeName", - "src": "1614:9:2", + "src": "1678:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -7515,46 +8057,46 @@ }, { "constant": false, - "id": 721, + "id": 726, "mutability": "mutable", "name": "redeemers", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1641:63:2", + "scope": 1106, + "src": "1705:63:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet)" }, "typeName": { - "id": 720, + "id": 725, "keyType": { - "id": 718, + "id": 723, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1650:7:2", + "src": "1714:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "1641:45:2", + "src": "1705:45:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet)" }, "valueType": { "contractScope": null, - "id": 719, + "id": 724, "name": "EnumerableSet.AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, - "src": "1661:24:2", + "referencedDeclaration": 3947, + "src": "1725:24:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } } @@ -7565,28 +8107,28 @@ { "anonymous": false, "documentation": { - "id": 722, + "id": 727, "nodeType": "StructuredDocumentation", - "src": "1709:15:2", + "src": "1773:15:2", "text": "@dev Events" }, - "id": 726, + "id": 731, "name": "PotChecked", "nodeType": "EventDefinition", "parameters": { - "id": 725, + "id": 730, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 724, + "id": 729, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 726, - "src": "1744:11:2", + "scope": 731, + "src": "1808:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7594,10 +8136,10 @@ "typeString": "address" }, "typeName": { - "id": 723, + "id": 728, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1744:7:2", + "src": "1808:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7608,30 +8150,30 @@ "visibility": "internal" } ], - "src": "1743:13:2" + "src": "1807:13:2" }, - "src": "1727:30:2" + "src": "1791:30:2" }, { "anonymous": false, "documentation": null, - "id": 730, + "id": 735, "name": "DSChiefChecked", "nodeType": "EventDefinition", "parameters": { - "id": 729, + "id": 734, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 728, + "id": 733, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 730, - "src": "1781:11:2", + "scope": 735, + "src": "1845:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7639,10 +8181,10 @@ "typeString": "address" }, "typeName": { - "id": 727, + "id": 732, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1781:7:2", + "src": "1845:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7653,30 +8195,30 @@ "visibility": "internal" } ], - "src": "1780:13:2" + "src": "1844:13:2" }, - "src": "1760:34:2" + "src": "1824:34:2" }, { "anonymous": false, "documentation": null, - "id": 734, + "id": 739, "name": "FlipperChecked", "nodeType": "EventDefinition", "parameters": { - "id": 733, + "id": 738, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 732, + "id": 737, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 734, - "src": "1818:11:2", + "scope": 739, + "src": "1882:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7684,10 +8226,10 @@ "typeString": "address" }, "typeName": { - "id": 731, + "id": 736, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1818:7:2", + "src": "1882:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7698,25 +8240,25 @@ "visibility": "internal" } ], - "src": "1817:13:2" + "src": "1881:13:2" }, - "src": "1797:34:2" + "src": "1861:34:2" }, { "constant": false, "documentation": { - "id": 735, + "id": 740, "nodeType": "StructuredDocumentation", - "src": "1835:13:2", + "src": "1899:13:2", "text": "@dev Data" }, - "id": 737, + "id": 742, "mutability": "immutable", "name": "pot", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1851:31:2", + "scope": 1106, + "src": "1915:31:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -7725,11 +8267,11 @@ }, "typeName": { "contractScope": null, - "id": 736, + "id": 741, "name": "PotLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 664, - "src": "1851:7:2", + "src": "1915:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" @@ -7740,13 +8282,13 @@ }, { "constant": false, - "id": 739, + "id": 744, "mutability": "immutable", "name": "chief", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1886:36:2", + "scope": 1106, + "src": "1950:36:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -7755,11 +8297,11 @@ }, "typeName": { "contractScope": null, - "id": 738, + "id": 743, "name": "DSChiefLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 672, - "src": "1886:11:2", + "src": "1950:11:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" @@ -7770,13 +8312,13 @@ }, { "constant": false, - "id": 741, + "id": 746, "mutability": "immutable", "name": "flipper", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1926:38:2", + "scope": 1106, + "src": "1990:38:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -7785,11 +8327,11 @@ }, "typeName": { "contractScope": null, - "id": 740, + "id": 745, "name": "FlipperLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 697, - "src": "1926:11:2", + "src": "1990:11:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" @@ -7801,18 +8343,18 @@ { "constant": true, "documentation": { - "id": 742, + "id": 747, "nodeType": "StructuredDocumentation", - "src": "1969:13:2", + "src": "2033:13:2", "text": "@dev Math" }, - "id": 747, + "id": 752, "mutability": "constant", "name": "RAY", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1985:31:2", + "scope": 1106, + "src": "2049:31:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -7820,10 +8362,10 @@ "typeString": "uint256" }, "typeName": { - "id": 743, + "id": 748, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1985:7:2", + "src": "2049:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7835,7 +8377,7 @@ "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" }, - "id": 746, + "id": 751, "isConstant": false, "isLValue": false, "isPure": true, @@ -7843,14 +8385,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 744, + "id": 749, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2008:2:2", + "src": "2072:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -7863,14 +8405,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3237", - "id": 745, + "id": 750, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2014:2:2", + "src": "2078:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_27_by_1", @@ -7878,7 +8420,7 @@ }, "value": "27" }, - "src": "2008:8:2", + "src": "2072:8:2", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" @@ -7888,26 +8430,26 @@ }, { "body": { - "id": 767, + "id": 772, "nodeType": "Block", - "src": "2105:73:2", + "src": "2169:73:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 765, + "id": 770, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 758, + "id": 763, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 756, - "src": "2155:1:2", + "referencedDeclaration": 761, + "src": "2219:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7921,7 +8463,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 764, + "id": 769, "isConstant": false, "isLValue": false, "isPure": false, @@ -7931,12 +8473,12 @@ "arguments": [ { "argumentTypes": null, - "id": 761, + "id": 766, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 751, - "src": "2165:1:2", + "referencedDeclaration": 756, + "src": "2229:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7952,32 +8494,32 @@ ], "expression": { "argumentTypes": null, - "id": 759, + "id": 764, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "2159:1:2", + "referencedDeclaration": 754, + "src": "2223:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 760, + "id": 765, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 1776, - "src": "2159:5:2", + "referencedDeclaration": 1807, + "src": "2223:5: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": 762, + "id": 767, "isConstant": false, "isLValue": false, "isPure": false, @@ -7985,7 +8527,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2159:8:2", + "src": "2223:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7996,76 +8538,76 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 763, + "id": 768, "name": "RAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 747, - "src": "2170:3:2", + "referencedDeclaration": 752, + "src": "2234:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2159:14:2", + "src": "2223:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2155:18:2", + "src": "2219:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 766, + "id": 771, "nodeType": "ExpressionStatement", - "src": "2155:18:2" + "src": "2219:18:2" } ] }, "documentation": null, - "id": 768, + "id": 773, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 754, + "id": 759, "modifierName": { "argumentTypes": null, - "id": 753, + "id": 758, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "2071:13:2", + "referencedDeclaration": 4198, + "src": "2135:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2071:13:2" + "src": "2135:13:2" } ], "name": "rmul", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 752, + "id": 757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 749, + "id": 754, "mutability": "mutable", "name": "x", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2035:9:2", + "scope": 773, + "src": "2099:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8073,10 +8615,10 @@ "typeString": "uint256" }, "typeName": { - "id": 748, + "id": 753, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2035:7:2", + "src": "2099:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8087,13 +8629,13 @@ }, { "constant": false, - "id": 751, + "id": 756, "mutability": "mutable", "name": "y", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2046:9:2", + "scope": 773, + "src": "2110:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8101,10 +8643,10 @@ "typeString": "uint256" }, "typeName": { - "id": 750, + "id": 755, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2046:7:2", + "src": "2110:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8114,21 +8656,21 @@ "visibility": "internal" } ], - "src": "2034:22:2" + "src": "2098:22:2" }, "returnParameters": { - "id": 757, + "id": 762, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 756, + "id": 761, "mutability": "mutable", "name": "z", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2094:9:2", + "scope": 773, + "src": "2158:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8136,10 +8678,10 @@ "typeString": "uint256" }, "typeName": { - "id": 755, + "id": 760, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2094:7:2", + "src": "2158:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8149,19 +8691,19 @@ "visibility": "internal" } ], - "src": "2093:11:2" + "src": "2157:11:2" }, - "scope": 1075, - "src": "2021:157:2", + "scope": 1106, + "src": "2085:157:2", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 801, + "id": 818, "nodeType": "Block", - "src": "2203:682:2", + "src": "2313:355:2", "statements": [ { "expression": { @@ -8169,12 +8711,12 @@ "arguments": [ { "argumentTypes": null, - "id": 772, + "id": 783, "name": "DEFAULT_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1161, - "src": "2224:18:2", + "referencedDeclaration": 1192, + "src": "2334:18:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8185,18 +8727,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 773, + "id": 784, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "2244:5:2", + "referencedDeclaration": 1494, + "src": "2354:5:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 774, + "id": 785, "isConstant": false, "isLValue": false, "isPure": false, @@ -8204,7 +8746,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2244:7:2", + "src": "2354:7:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -8223,18 +8765,18 @@ "typeString": "address" } ], - "id": 771, + "id": 782, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "2213:10:2", + "referencedDeclaration": 1375, + "src": "2323:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 775, + "id": 786, "isConstant": false, "isLValue": false, "isPure": false, @@ -8242,16 +8784,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2213:39:2", + "src": "2323:39:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 776, + "id": 787, "nodeType": "ExpressionStatement", - "src": "2213:39:2" + "src": "2323:39:2" }, { "expression": { @@ -8259,12 +8801,102 @@ "arguments": [ { "argumentTypes": null, - "id": 778, - "name": "PAUSER_ROLE", + "id": 789, + "name": "ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 714, - "src": "2274:11:2", + "src": "2384:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 790, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "2396:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2396:7:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 788, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1375, + "src": "2373:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2373:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 793, + "nodeType": "ExpressionStatement", + "src": "2373:31:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 795, + "name": "PAUSER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 719, + "src": "2425:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8275,18 +8907,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 779, + "id": 796, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "2287:5:2", + "referencedDeclaration": 1494, + "src": "2438:5:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 780, + "id": 797, "isConstant": false, "isLValue": false, "isPure": false, @@ -8294,7 +8926,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2287:7:2", + "src": "2438:7:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -8313,18 +8945,18 @@ "typeString": "address" } ], - "id": 777, + "id": 794, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "2263:10:2", + "referencedDeclaration": 1375, + "src": "2414:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 781, + "id": 798, "isConstant": false, "isLValue": false, "isPure": false, @@ -8332,33 +8964,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2263:32:2", + "src": "2414:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 782, + "id": 799, "nodeType": "ExpressionStatement", - "src": "2263:32:2" + "src": "2414:32:2" }, { "expression": { "argumentTypes": null, - "id": 787, + "id": 804, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 783, + "id": 800, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "2421:3:2", + "referencedDeclaration": 742, + "src": "2490:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" @@ -8371,82 +9003,77 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307845413139304442444337616446323635323630656334644136653936373546643466354137386262", - "id": 785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2435:42:2", - "subdenomination": null, + "id": 802, + "name": "pot_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 775, + "src": "2504:4:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xEA190DBDC7adF265260ec4dA6e9675Fd4f5A78bb" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 784, + "id": 801, "name": "PotLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 664, - "src": "2427:7:2", + "src": "2496:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_PotLike_$664_$", "typeString": "type(contract PotLike)" } }, - "id": 786, + "id": 803, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2427:51:2", + "src": "2496:13:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "src": "2421:57:2", + "src": "2490:19:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 788, + "id": 805, "nodeType": "ExpressionStatement", - "src": "2421:57:2" + "src": "2490:19:2" }, { "expression": { "argumentTypes": null, - "id": 793, + "id": 810, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 789, + "id": 806, "name": "chief", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "2611:5:2", + "referencedDeclaration": 744, + "src": "2553:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" @@ -8459,82 +9086,77 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307862424646433736653934423334463732443936443035346233316636343234323439633133333764", - "id": 791, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2631:42:2", - "subdenomination": null, + "id": 808, + "name": "chief_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 777, + "src": "2573:6:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xbBFFC76e94B34F72D96D054b31f6424249c1337d" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 790, + "id": 807, "name": "DSChiefLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 672, - "src": "2619:11:2", + "src": "2561:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DSChiefLike_$672_$", "typeString": "type(contract DSChiefLike)" } }, - "id": 792, + "id": 809, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2619:55:2", + "src": "2561:19:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "src": "2611:63:2", + "src": "2553:27:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "id": 794, + "id": 811, "nodeType": "ExpressionStatement", - "src": "2611:63:2" + "src": "2553:27:2" }, { "expression": { "argumentTypes": null, - "id": 799, + "id": 816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 795, + "id": 812, "name": "flipper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "2814:7:2", + "referencedDeclaration": 746, + "src": "2631:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" @@ -8547,99 +9169,182 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307842343031333945613336443335643043394636613265363236303142363136463146666242443162", - "id": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2836:42:2", - "subdenomination": null, + "id": 814, + "name": "flipper_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "2653:8:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xB40139Ea36D35d0C9F6a2e62601B616F1FfbBD1b" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 796, + "id": 813, "name": "FlipperLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 697, - "src": "2824:11:2", + "src": "2641:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FlipperLike_$697_$", "typeString": "type(contract FlipperLike)" } }, - "id": 798, + "id": 815, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2824:55:2", + "src": "2641:21:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" } }, - "src": "2814:65:2", + "src": "2631:31:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_FlipperLike_$697", + "typeString": "contract FlipperLike" + } + }, + "id": 817, + "nodeType": "ExpressionStatement", + "src": "2631:31:2" + } + ] + }, + "documentation": null, + "id": 819, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 780, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 775, + "mutability": "mutable", + "name": "pot_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2258:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 774, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2258:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 777, + "mutability": "mutable", + "name": "chief_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2272:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 776, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2272:7:2", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_contract$_FlipperLike_$697", - "typeString": "contract FlipperLike" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 800, - "nodeType": "ExpressionStatement", - "src": "2814:65:2" + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 779, + "mutability": "mutable", + "name": "flipper_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2288:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2288:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" } - ] - }, - "documentation": null, - "id": 802, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 769, - "nodeType": "ParameterList", - "parameters": [], - "src": "2193:2:2" + ], + "src": "2257:48:2" }, "returnParameters": { - "id": 770, + "id": 781, "nodeType": "ParameterList", "parameters": [], - "src": "2203:0:2" + "src": "2313:0:2" }, - "scope": 1075, - "src": "2182:703:2", + "scope": 1106, + "src": "2246:422:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 809, + "id": 826, "nodeType": "Block", - "src": "3042:19:2", + "src": "2825:19:2", "statements": [ { "expression": { @@ -8647,7 +9352,7 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 806, + "id": 823, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -8655,13 +9360,13 @@ -19 ], "referencedDeclaration": -19, - "src": "3048:6:2", + "src": "2831:6:2", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 807, + "id": 824, "isConstant": false, "isLValue": false, "isPure": false, @@ -8669,26 +9374,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3048:8:2", + "src": "2831:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 808, + "id": 825, "nodeType": "ExpressionStatement", - "src": "3048:8:2" + "src": "2831:8:2" } ] }, "documentation": { - "id": 803, + "id": 820, "nodeType": "StructuredDocumentation", - "src": "2889:130:2", + "src": "2672:130:2", "text": "@notice Fallback function\n @dev Added not payable to revert transactions not matching any other function which send value" }, - "id": 810, + "id": 827, "implemented": true, "kind": "fallback", "modifiers": [], @@ -8696,45 +9401,228 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 804, + "id": 821, "nodeType": "ParameterList", "parameters": [], - "src": "3030:2:2" + "src": "2813:2:2" }, "returnParameters": { - "id": 805, + "id": 822, "nodeType": "ParameterList", "parameters": [], - "src": "3042:0:2" + "src": "2825:0:2" }, - "scope": 1075, - "src": "3022:39:2", + "scope": 1106, + "src": "2805:39:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { + "id": 840, + "nodeType": "Block", + "src": "2890:90:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 832, + "name": "ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 714, + "src": "2914:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 833, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2926:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2926:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 831, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1238, + "src": "2906:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2906:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43616c6c6572206973206e6f7420616e2061646d696e", + "id": 836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2939:24:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c42e6f213cb252dbb58053bcbc469c8ef3e91890f0261efae8e5d5a1aecda226", + "typeString": "literal_string \"Caller is not an admin\"" + }, + "value": "Caller is not an admin" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c42e6f213cb252dbb58053bcbc469c8ef3e91890f0261efae8e5d5a1aecda226", + "typeString": "literal_string \"Caller is not an admin\"" + } + ], + "id": 830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2898:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2898:66:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 838, + "nodeType": "ExpressionStatement", + "src": "2898:66:2" + }, + { + "id": 839, + "nodeType": "PlaceholderStatement", + "src": "2972:1:2" + } + ] + }, + "documentation": { + "id": 828, + "nodeType": "StructuredDocumentation", + "src": "2848:18:2", + "text": "@dev Modifiers" + }, + "id": 841, + "name": "onlyAdmin", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { "id": 829, + "nodeType": "ParameterList", + "parameters": [], + "src": "2887:2:2" + }, + "src": "2869:111:2", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 860, "nodeType": "Block", - "src": "3415:46:2", + "src": "3335:46:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 825, + "id": 856, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 823, + "id": 854, "name": "roots", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "3421:5:2", + "referencedDeclaration": 722, + "src": "3341:5:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" @@ -8744,39 +9632,39 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 824, + "id": 855, "name": "rootHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 814, - "src": "3429:10:2", + "referencedDeclaration": 845, + "src": "3349:10:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "src": "3421:18:2", + "src": "3341:18:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 826, + "id": 857, "nodeType": "ExpressionStatement", - "src": "3421:18:2" + "src": "3341:18:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 827, + "id": 858, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3452:4:2", + "src": "3372:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -8784,79 +9672,79 @@ }, "value": "true" }, - "functionReturnParameters": 822, - "id": 828, + "functionReturnParameters": 853, + "id": 859, "nodeType": "Return", - "src": "3445:11:2" + "src": "3365:11:2" } ] }, "documentation": { - "id": 811, + "id": 842, "nodeType": "StructuredDocumentation", - "src": "3065:245:2", + "src": "2985:245:2", "text": "@notice Set Merkle Tree Root Hashes array\n @dev Called by owner to update roots for different address batches by templateId\n @param rootHashes Root hashes of the Merkle Trees by templateId\n @return True if successfully updated" }, "functionSelector": "aca57703", - "id": 830, + "id": 861, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 817, + "id": 848, "modifierName": { "argumentTypes": null, - "id": 816, - "name": "onlyOwner", + "id": 847, + "name": "onlyAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "3376:9:2", + "referencedDeclaration": 841, + "src": "3296:9:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3376:9:2" + "src": "3296:9:2" }, { "arguments": null, - "id": 819, + "id": 850, "modifierName": { "argumentTypes": null, - "id": 818, + "id": 849, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "3386:13:2", + "referencedDeclaration": 4198, + "src": "3306:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3386:13:2" + "src": "3306:13:2" } ], "name": "setRootHashes", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 815, + "id": 846, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 814, + "id": 845, "mutability": "mutable", "name": "rootHashes", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 830, - "src": "3336:29:2", + "scope": 861, + "src": "3256:29:2", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -8865,19 +9753,19 @@ }, "typeName": { "baseType": { - "id": 812, + "id": 843, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3336:7:2", + "src": "3256:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 813, + "id": 844, "length": null, "nodeType": "ArrayTypeName", - "src": "3336:9:2", + "src": "3256:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -8887,21 +9775,21 @@ "visibility": "internal" } ], - "src": "3335:31:2" + "src": "3255:31:2" }, "returnParameters": { - "id": 822, + "id": 853, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 821, + "id": 852, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 830, - "src": "3409:4:2", + "scope": 861, + "src": "3329:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8909,10 +9797,10 @@ "typeString": "bool" }, "typeName": { - "id": 820, + "id": 851, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3409:4:2", + "src": "3329:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8922,34 +9810,34 @@ "visibility": "internal" } ], - "src": "3408:6:2" + "src": "3328:6:2" }, - "scope": 1075, - "src": "3313:148:2", + "scope": 1106, + "src": "3233:148:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 870, + "id": 901, "nodeType": "Block", - "src": "3713:129:2", + "src": "3633:129:2", "statements": [ { "assignments": [ - 841 + 872 ], "declarations": [ { "constant": false, - "id": 841, + "id": 872, "mutability": "mutable", "name": "slice", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 870, - "src": "3719:13:2", + "scope": 901, + "src": "3639:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8957,10 +9845,10 @@ "typeString": "uint256" }, "typeName": { - "id": 840, + "id": 871, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3719:7:2", + "src": "3639:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8970,18 +9858,18 @@ "visibility": "internal" } ], - "id": 846, + "id": 877, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 844, + "id": 875, "name": "guy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 833, - "src": "3743:3:2", + "referencedDeclaration": 864, + "src": "3663:3:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8997,18 +9885,18 @@ ], "expression": { "argumentTypes": null, - "id": 842, + "id": 873, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3735:3:2", + "referencedDeclaration": 742, + "src": "3655:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 843, + "id": 874, "isConstant": false, "isLValue": false, "isPure": false, @@ -9016,13 +9904,13 @@ "memberName": "pie", "nodeType": "MemberAccess", "referencedDeclaration": 648, - "src": "3735:7:2", + "src": "3655:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 845, + "id": 876, "isConstant": false, "isLValue": false, "isPure": false, @@ -9030,7 +9918,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3735:12:2", + "src": "3655:12:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9038,22 +9926,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3719:28:2" + "src": "3639:28:2" }, { "assignments": [ - 848 + 879 ], "declarations": [ { "constant": false, - "id": 848, + "id": 879, "mutability": "mutable", "name": "chi", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 870, - "src": "3753:11:2", + "scope": 901, + "src": "3673:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9061,10 +9949,10 @@ "typeString": "uint256" }, "typeName": { - "id": 847, + "id": 878, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3753:7:2", + "src": "3673:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9074,7 +9962,7 @@ "visibility": "internal" } ], - "id": 862, + "id": 893, "initialValue": { "argumentTypes": null, "condition": { @@ -9086,19 +9974,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 853, + "id": 884, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 849, + "id": 880, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -17, - "src": "3768:3:2", + "src": "3688:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9113,18 +10001,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 850, + "id": 881, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3774:3:2", + "referencedDeclaration": 742, + "src": "3694:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 851, + "id": 882, "isConstant": false, "isLValue": false, "isPure": false, @@ -9132,13 +10020,13 @@ "memberName": "rho", "nodeType": "MemberAccess", "referencedDeclaration": 658, - "src": "3774:7:2", + "src": "3694:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 852, + "id": 883, "isConstant": false, "isLValue": false, "isPure": false, @@ -9146,28 +10034,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3774:9:2", + "src": "3694:9:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3768:15:2", + "src": "3688:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 854, + "id": 885, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3767:17:2", + "src": "3687:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9180,18 +10068,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 858, + "id": 889, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3800:3:2", + "referencedDeclaration": 742, + "src": "3720:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 859, + "id": 890, "isConstant": false, "isLValue": false, "isPure": false, @@ -9199,13 +10087,13 @@ "memberName": "chi", "nodeType": "MemberAccess", "referencedDeclaration": 653, - "src": "3800:7:2", + "src": "3720:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 860, + "id": 891, "isConstant": false, "isLValue": false, "isPure": false, @@ -9213,20 +10101,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3800:9:2", + "src": "3720:9:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 861, + "id": 892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "3767:42:2", + "src": "3687:42:2", "trueExpression": { "argumentTypes": null, "arguments": [], @@ -9234,18 +10122,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 855, + "id": 886, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3787:3:2", + "referencedDeclaration": 742, + "src": "3707:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 856, + "id": 887, "isConstant": false, "isLValue": false, "isPure": false, @@ -9253,13 +10141,13 @@ "memberName": "drip", "nodeType": "MemberAccess", "referencedDeclaration": 663, - "src": "3787:8:2", + "src": "3707:8:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 857, + "id": 888, "isConstant": false, "isLValue": false, "isPure": false, @@ -9267,7 +10155,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3787:10:2", + "src": "3707:10:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9280,24 +10168,24 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3753:56:2" + "src": "3673:56:2" }, { "expression": { "argumentTypes": null, - "id": 868, + "id": 899, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 863, + "id": 894, "name": "wad", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 838, - "src": "3815:3:2", + "referencedDeclaration": 869, + "src": "3735:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9310,12 +10198,12 @@ "arguments": [ { "argumentTypes": null, - "id": 865, + "id": 896, "name": "slice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 841, - "src": "3826:5:2", + "referencedDeclaration": 872, + "src": "3746:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9323,12 +10211,12 @@ }, { "argumentTypes": null, - "id": 866, + "id": 897, "name": "chi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 848, - "src": "3833:3:2", + "referencedDeclaration": 879, + "src": "3753:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9346,18 +10234,18 @@ "typeString": "uint256" } ], - "id": 864, + "id": 895, "name": "rmul", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "3821:4:2", + "referencedDeclaration": 773, + "src": "3741:4:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) view returns (uint256)" } }, - "id": 867, + "id": 898, "isConstant": false, "isLValue": false, "isPure": false, @@ -9365,71 +10253,71 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3821:16:2", + "src": "3741:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3815:22:2", + "src": "3735:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 869, + "id": 900, "nodeType": "ExpressionStatement", - "src": "3815:22:2" + "src": "3735:22:2" } ] }, "documentation": { - "id": 831, + "id": 862, "nodeType": "StructuredDocumentation", - "src": "3465:169:2", + "src": "3385:169:2", "text": "@notice Return the accrued interest of guy on Pot\n @dev Based on Chai dai() function\n @param guy Address to check\n @return wad Accrued interest of guy" }, - "id": 871, + "id": 902, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 836, + "id": 867, "modifierName": { "argumentTypes": null, - "id": 835, + "id": 866, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "3677:13:2", + "referencedDeclaration": 4198, + "src": "3597:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3677:13:2" + "src": "3597:13:2" } ], "name": "_dai", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 834, + "id": 865, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 833, + "id": 864, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 871, - "src": "3651:11:2", + "scope": 902, + "src": "3571:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9437,10 +10325,10 @@ "typeString": "address" }, "typeName": { - "id": 832, + "id": 863, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3651:7:2", + "src": "3571:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9451,21 +10339,21 @@ "visibility": "internal" } ], - "src": "3650:13:2" + "src": "3570:13:2" }, "returnParameters": { - "id": 839, + "id": 870, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 838, + "id": 869, "mutability": "mutable", "name": "wad", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 871, - "src": "3700:11:2", + "scope": 902, + "src": "3620:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9473,10 +10361,10 @@ "typeString": "uint256" }, "typeName": { - "id": 837, + "id": 868, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3700:7:2", + "src": "3620:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9486,19 +10374,19 @@ "visibility": "internal" } ], - "src": "3699:13:2" + "src": "3619:13:2" }, - "scope": 1075, - "src": "3637:205:2", + "scope": 1106, + "src": "3557:205:2", "stateMutability": "view", "virtual": false, "visibility": "private" }, { "body": { - "id": 918, + "id": 949, "nodeType": "Block", - "src": "4094:266:2", + "src": "4014:266:2", "statements": [ { "expression": { @@ -9510,7 +10398,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 887, + "id": 918, "isConstant": false, "isLValue": false, "isPure": false, @@ -9522,18 +10410,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 883, + "id": 914, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4113:3:2", + "src": "4033:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 884, + "id": 915, "isConstant": false, "isLValue": false, "isPure": false, @@ -9541,7 +10429,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4113:10:2", + "src": "4033:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9555,18 +10443,18 @@ "typeString": "address payable" } ], - "id": 882, + "id": 913, "name": "_dai", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 871, - "src": "4108:4:2", + "referencedDeclaration": 902, + "src": "4028:4:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 885, + "id": 916, "isConstant": false, "isLValue": false, "isPure": false, @@ -9574,7 +10462,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4108:16:2", + "src": "4028:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9586,14 +10474,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 886, + "id": 917, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4128:7:2", + "src": "4048:7:2", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", @@ -9601,7 +10489,7 @@ }, "value": "1" }, - "src": "4108:27:2", + "src": "4028:27:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9610,14 +10498,14 @@ { "argumentTypes": null, "hexValue": "43616c6c657220686173206e6f7420616363727565642031206f72206d6f72652044616920696e746572657374206f6e20506f74", - "id": 888, + "id": 919, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4137:54:2", + "src": "4057:54:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_94e2bcffd09237077ab7bf5d72c9dbecf83833ba747ce44f2fb8b96ffffa64a1", @@ -9637,7 +10525,7 @@ "typeString": "literal_string \"Caller has not accrued 1 or more Dai interest on Pot\"" } ], - "id": 881, + "id": 912, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -9645,13 +10533,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4100:7:2", + "src": "4020:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 889, + "id": 920, "isConstant": false, "isLValue": false, "isPure": false, @@ -9659,21 +10547,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4100:92:2", + "src": "4020:92:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 890, + "id": 921, "nodeType": "ExpressionStatement", - "src": "4100:92:2" + "src": "4020:92:2" }, { "condition": { "argumentTypes": null, - "id": 898, + "id": 929, "isConstant": false, "isLValue": false, "isPure": false, @@ -9681,7 +10569,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4202:43:2", + "src": "4122:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -9689,18 +10577,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 895, + "id": 926, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4234:3:2", + "src": "4154:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 896, + "id": 927, "isConstant": false, "isLValue": false, "isPure": false, @@ -9708,7 +10596,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4234:10:2", + "src": "4154:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9726,26 +10614,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 891, + "id": 922, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4203:9:2", + "referencedDeclaration": 726, + "src": "4123:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 893, + "id": 924, "indexExpression": { "argumentTypes": null, - "id": 892, + "id": 923, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "4213:10:2", + "referencedDeclaration": 905, + "src": "4133:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9756,27 +10644,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4203:21:2", + "src": "4123:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 894, + "id": 925, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "4203:30:2", + "referencedDeclaration": 4016, + "src": "4123:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 897, + "id": 928, "isConstant": false, "isLValue": false, "isPure": false, @@ -9784,7 +10672,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4203:42:2", + "src": "4123:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9797,13 +10685,13 @@ } }, "falseBody": null, - "id": 910, + "id": 941, "nodeType": "IfStatement", - "src": "4198:108:2", + "src": "4118:108:2", "trueBody": { - "id": 909, + "id": 940, "nodeType": "Block", - "src": "4247:59:2", + "src": "4167:59:2", "statements": [ { "expression": { @@ -9816,18 +10704,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 904, + "id": 935, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4287:3:2", + "src": "4207:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 905, + "id": 936, "isConstant": false, "isLValue": false, "isPure": false, @@ -9835,7 +10723,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4287:10:2", + "src": "4207:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9853,26 +10741,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 900, + "id": 931, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4261:9:2", + "referencedDeclaration": 726, + "src": "4181:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 902, + "id": 933, "indexExpression": { "argumentTypes": null, - "id": 901, + "id": 932, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "4271:10:2", + "referencedDeclaration": 905, + "src": "4191:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9883,27 +10771,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4261:21:2", + "src": "4181:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 903, + "id": 934, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "4261:25:2", + "referencedDeclaration": 3970, + "src": "4181:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 906, + "id": 937, "isConstant": false, "isLValue": false, "isPure": false, @@ -9911,7 +10799,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4261:37:2", + "src": "4181:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9926,7 +10814,7 @@ "typeString": "bool" } ], - "id": 899, + "id": 930, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -9934,13 +10822,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4253:7:2", + "src": "4173:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 907, + "id": 938, "isConstant": false, "isLValue": false, "isPure": false, @@ -9948,16 +10836,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4253:46:2", + "src": "4173:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 908, + "id": 939, "nodeType": "ExpressionStatement", - "src": "4253:46:2" + "src": "4173:46:2" } ] } @@ -9970,18 +10858,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 912, + "id": 943, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4327:3:2", + "src": "4247:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 913, + "id": 944, "isConstant": false, "isLValue": false, "isPure": false, @@ -9989,7 +10877,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4327:10:2", + "src": "4247:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10003,18 +10891,18 @@ "typeString": "address payable" } ], - "id": 911, + "id": 942, "name": "PotChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 726, - "src": "4316:10:2", + "referencedDeclaration": 731, + "src": "4236:10:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 914, + "id": 945, "isConstant": false, "isLValue": false, "isPure": false, @@ -10022,29 +10910,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4316:22:2", + "src": "4236:22:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 915, + "id": 946, "nodeType": "EmitStatement", - "src": "4311:27:2" + "src": "4231:27:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 916, + "id": 947, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4351:4:2", + "src": "4271:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10052,60 +10940,60 @@ }, "value": "true" }, - "functionReturnParameters": 880, - "id": 917, + "functionReturnParameters": 911, + "id": 948, "nodeType": "Return", - "src": "4344:11:2" + "src": "4264:11:2" } ] }, "documentation": { - "id": 872, + "id": 903, "nodeType": "StructuredDocumentation", - "src": "3846:165:2", + "src": "3766:165:2", "text": "@notice Pot Challenge\n @dev Keeps track of the address of the caller if successful\n @return True if the caller successfully checked for activity on Pot" }, "functionSelector": "baf2868b", - "id": 919, + "id": 950, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 877, + "id": 908, "modifierName": { "argumentTypes": null, - "id": 876, + "id": 907, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "4065:13:2", + "referencedDeclaration": 4198, + "src": "3985:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4065:13:2" + "src": "3985:13:2" } ], "name": "potChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 875, + "id": 906, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 874, + "id": 905, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 919, - "src": "4036:18:2", + "scope": 950, + "src": "3956:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10113,10 +11001,10 @@ "typeString": "uint256" }, "typeName": { - "id": 873, + "id": 904, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4036:7:2", + "src": "3956:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10126,21 +11014,21 @@ "visibility": "internal" } ], - "src": "4035:20:2" + "src": "3955:20:2" }, "returnParameters": { - "id": 880, + "id": 911, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 879, + "id": 910, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 919, - "src": "4088:4:2", + "scope": 950, + "src": "4008:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10148,10 +11036,10 @@ "typeString": "bool" }, "typeName": { - "id": 878, + "id": 909, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4088:4:2", + "src": "4008:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10161,19 +11049,19 @@ "visibility": "internal" } ], - "src": "4087:6:2" + "src": "4007:6:2" }, - "scope": 1075, - "src": "4014:346:2", + "scope": 1106, + "src": "3934:346:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 967, + "id": 998, "nodeType": "Block", - "src": "4622:263:2", + "src": "4542:264:2", "statements": [ { "expression": { @@ -10185,7 +11073,7 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 936, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, @@ -10197,18 +11085,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 932, + "id": 963, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4648:3:2", + "src": "4568:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 933, + "id": 964, "isConstant": false, "isLValue": false, "isPure": false, @@ -10216,7 +11104,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4648:10:2", + "src": "4568:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10232,18 +11120,18 @@ ], "expression": { "argumentTypes": null, - "id": 930, + "id": 961, "name": "chief", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "4636:5:2", + "referencedDeclaration": 744, + "src": "4556:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "id": 931, + "id": 962, "isConstant": false, "isLValue": false, "isPure": false, @@ -10251,13 +11139,13 @@ "memberName": "votes", "nodeType": "MemberAccess", "referencedDeclaration": 671, - "src": "4636:11:2", + "src": "4556:11:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$", "typeString": "function (address) view external returns (bytes32)" } }, - "id": 934, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, @@ -10265,7 +11153,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4636:23:2", + "src": "4556:23:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -10277,14 +11165,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783030", - "id": 935, + "id": 966, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4663:4:2", + "src": "4583:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10292,7 +11180,7 @@ }, "value": "0x00" }, - "src": "4636:31:2", + "src": "4556:31:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10300,21 +11188,21 @@ }, { "argumentTypes": null, - "hexValue": "43616c6c6572206973206e6f7420766f74696e6720696e206120476f7665726e616e636520506f6c6c", - "id": 937, + "hexValue": "43616c6c6572206973206e6f7420766f74696e6720696e20616e20457865637574697665205370656c6c", + "id": 968, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4669:43:2", + "src": "4589:44:2", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_67b208a9b43a5545a1a8888c99a64b4cd7f58aa52580dee6f4ec112b3e80c46b", - "typeString": "literal_string \"Caller is not voting in a Governance Poll\"" + "typeIdentifier": "t_stringliteral_65880bfcd366c16deddf50d8f8606d011e26303e9f1a09e543bd3e08c12c2544", + "typeString": "literal_string \"Caller is not voting in an Executive Spell\"" }, - "value": "Caller is not voting in a Governance Poll" + "value": "Caller is not voting in an Executive Spell" } ], "expression": { @@ -10324,11 +11212,11 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_67b208a9b43a5545a1a8888c99a64b4cd7f58aa52580dee6f4ec112b3e80c46b", - "typeString": "literal_string \"Caller is not voting in a Governance Poll\"" + "typeIdentifier": "t_stringliteral_65880bfcd366c16deddf50d8f8606d011e26303e9f1a09e543bd3e08c12c2544", + "typeString": "literal_string \"Caller is not voting in an Executive Spell\"" } ], - "id": 929, + "id": 960, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -10336,13 +11224,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4628:7:2", + "src": "4548:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 938, + "id": 969, "isConstant": false, "isLValue": false, "isPure": false, @@ -10350,21 +11238,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4628:85:2", + "src": "4548:86:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 939, + "id": 970, "nodeType": "ExpressionStatement", - "src": "4628:85:2" + "src": "4548:86:2" }, { "condition": { "argumentTypes": null, - "id": 947, + "id": 978, "isConstant": false, "isLValue": false, "isPure": false, @@ -10372,7 +11260,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4723:43:2", + "src": "4644:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -10380,18 +11268,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 944, + "id": 975, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4755:3:2", + "src": "4676:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 945, + "id": 976, "isConstant": false, "isLValue": false, "isPure": false, @@ -10399,7 +11287,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4755:10:2", + "src": "4676:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10417,26 +11305,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 940, + "id": 971, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4724:9:2", + "referencedDeclaration": 726, + "src": "4645:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 942, + "id": 973, "indexExpression": { "argumentTypes": null, - "id": 941, + "id": 972, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "4734:10:2", + "referencedDeclaration": 953, + "src": "4655:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10447,27 +11335,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4724:21:2", + "src": "4645:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 943, + "id": 974, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "4724:30:2", + "referencedDeclaration": 4016, + "src": "4645:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 946, + "id": 977, "isConstant": false, "isLValue": false, "isPure": false, @@ -10475,7 +11363,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4724:42:2", + "src": "4645:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10488,13 +11376,13 @@ } }, "falseBody": null, - "id": 959, + "id": 990, "nodeType": "IfStatement", - "src": "4719:108:2", + "src": "4640:108:2", "trueBody": { - "id": 958, + "id": 989, "nodeType": "Block", - "src": "4768:59:2", + "src": "4689:59:2", "statements": [ { "expression": { @@ -10507,18 +11395,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 953, + "id": 984, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4808:3:2", + "src": "4729:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 954, + "id": 985, "isConstant": false, "isLValue": false, "isPure": false, @@ -10526,7 +11414,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4808:10:2", + "src": "4729:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10544,26 +11432,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 949, + "id": 980, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4782:9:2", + "referencedDeclaration": 726, + "src": "4703:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 951, + "id": 982, "indexExpression": { "argumentTypes": null, - "id": 950, + "id": 981, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "4792:10:2", + "referencedDeclaration": 953, + "src": "4713:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10574,27 +11462,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4782:21:2", + "src": "4703:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 952, + "id": 983, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "4782:25:2", + "referencedDeclaration": 3970, + "src": "4703:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 955, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, @@ -10602,7 +11490,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4782:37:2", + "src": "4703:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10617,7 +11505,7 @@ "typeString": "bool" } ], - "id": 948, + "id": 979, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -10625,13 +11513,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4774:7:2", + "src": "4695:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 956, + "id": 987, "isConstant": false, "isLValue": false, "isPure": false, @@ -10639,16 +11527,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4774:46:2", + "src": "4695:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 957, + "id": 988, "nodeType": "ExpressionStatement", - "src": "4774:46:2" + "src": "4695:46:2" } ] } @@ -10661,18 +11549,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 961, + "id": 992, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4852:3:2", + "src": "4773:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 962, + "id": 993, "isConstant": false, "isLValue": false, "isPure": false, @@ -10680,7 +11568,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4852:10:2", + "src": "4773:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10694,18 +11582,18 @@ "typeString": "address payable" } ], - "id": 960, + "id": 991, "name": "DSChiefChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "4837:14:2", + "referencedDeclaration": 735, + "src": "4758:14:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 963, + "id": 994, "isConstant": false, "isLValue": false, "isPure": false, @@ -10713,29 +11601,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4837:26:2", + "src": "4758:26:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 964, + "id": 995, "nodeType": "EmitStatement", - "src": "4832:31:2" + "src": "4753:31:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 965, + "id": 996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4876:4:2", + "src": "4797:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10743,60 +11631,60 @@ }, "value": "true" }, - "functionReturnParameters": 928, - "id": 966, + "functionReturnParameters": 959, + "id": 997, "nodeType": "Return", - "src": "4869:11:2" + "src": "4790:11:2" } ] }, "documentation": { - "id": 920, + "id": 951, "nodeType": "StructuredDocumentation", - "src": "4364:173:2", + "src": "4284:173:2", "text": "@notice DSChief Challenge\n @dev Keeps track of the address of the caller if successful\n @return True if the caller successfully checked for activity on DSChief" }, "functionSelector": "f36618a6", - "id": 968, + "id": 999, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 925, + "id": 956, "modifierName": { "argumentTypes": null, - "id": 924, + "id": 955, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "4593:13:2", + "referencedDeclaration": 4198, + "src": "4513:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4593:13:2" + "src": "4513:13:2" } ], "name": "chiefChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 923, + "id": 954, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 922, + "id": 953, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 968, - "src": "4564:18:2", + "scope": 999, + "src": "4484:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10804,10 +11692,10 @@ "typeString": "uint256" }, "typeName": { - "id": 921, + "id": 952, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4564:7:2", + "src": "4484:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10817,21 +11705,21 @@ "visibility": "internal" } ], - "src": "4563:20:2" + "src": "4483:20:2" }, "returnParameters": { - "id": 928, + "id": 959, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 927, + "id": 958, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 968, - "src": "4616:4:2", + "scope": 999, + "src": "4536:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10839,10 +11727,10 @@ "typeString": "bool" }, "typeName": { - "id": 926, + "id": 957, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4616:4:2", + "src": "4536:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10852,19 +11740,19 @@ "visibility": "internal" } ], - "src": "4615:6:2" + "src": "4535:6:2" }, - "scope": 1075, - "src": "4540:345:2", + "scope": 1106, + "src": "4460:346:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1019, + "id": 1050, "nodeType": "Block", - "src": "5192:299:2", + "src": "5113:299:2", "statements": [ { "expression": { @@ -10876,7 +11764,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 988, + "id": 1019, "isConstant": false, "isLValue": false, "isPure": false, @@ -10888,12 +11776,12 @@ "arguments": [ { "argumentTypes": null, - "id": 983, + "id": 1014, "name": "bidId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "5219:5:2", + "referencedDeclaration": 1004, + "src": "5140:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10909,18 +11797,18 @@ ], "expression": { "argumentTypes": null, - "id": 981, + "id": 1012, "name": "flipper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "5206:7:2", + "referencedDeclaration": 746, + "src": "5127:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" } }, - "id": 982, + "id": 1013, "isConstant": false, "isLValue": false, "isPure": false, @@ -10928,13 +11816,13 @@ "memberName": "bids", "nodeType": "MemberAccess", "referencedDeclaration": 696, - "src": "5206:12:2", + "src": "5127:12:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Bid_$689_memory_ptr_$", "typeString": "function (uint256) view external returns (struct FlipperLike.Bid memory)" } }, - "id": 984, + "id": 1015, "isConstant": false, "isLValue": false, "isPure": false, @@ -10942,14 +11830,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5206:19:2", + "src": "5127:19:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Bid_$689_memory_ptr", "typeString": "struct FlipperLike.Bid memory" } }, - "id": 985, + "id": 1016, "isConstant": false, "isLValue": true, "isPure": false, @@ -10957,7 +11845,7 @@ "memberName": "guy", "nodeType": "MemberAccess", "referencedDeclaration": 678, - "src": "5206:23:2", + "src": "5127:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10969,18 +11857,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 986, + "id": 1017, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5233:3:2", + "src": "5154:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 987, + "id": 1018, "isConstant": false, "isLValue": false, "isPure": false, @@ -10988,13 +11876,13 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5233:10:2", + "src": "5154:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "5206:37:2", + "src": "5127:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11003,14 +11891,14 @@ { "argumentTypes": null, "hexValue": "43616c6c6572206973206e6f742074686520686967682062696464657220696e207468652063757272656e742042696420696e20436f6c6c61746572616c2041756374696f6e73", - "id": 989, + "id": 1020, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5245:73:2", + "src": "5166:73:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e88b03e76bc82122d18e72f0c400e240eb0423ded12b22b77672909d807e7840", @@ -11030,7 +11918,7 @@ "typeString": "literal_string \"Caller is not the high bidder in the current Bid in Collateral Auctions\"" } ], - "id": 980, + "id": 1011, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11038,13 +11926,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5198:7:2", + "src": "5119:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 990, + "id": 1021, "isConstant": false, "isLValue": false, "isPure": false, @@ -11052,21 +11940,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5198:121:2", + "src": "5119:121:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 991, + "id": 1022, "nodeType": "ExpressionStatement", - "src": "5198:121:2" + "src": "5119:121:2" }, { "condition": { "argumentTypes": null, - "id": 999, + "id": 1030, "isConstant": false, "isLValue": false, "isPure": false, @@ -11074,7 +11962,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5329:43:2", + "src": "5250:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -11082,18 +11970,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 996, + "id": 1027, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5361:3:2", + "src": "5282:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 997, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, @@ -11101,7 +11989,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5361:10:2", + "src": "5282:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11119,26 +12007,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 992, + "id": 1023, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5330:9:2", + "referencedDeclaration": 726, + "src": "5251:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 994, + "id": 1025, "indexExpression": { "argumentTypes": null, - "id": 993, + "id": 1024, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5340:10:2", + "referencedDeclaration": 1002, + "src": "5261:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11149,27 +12037,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5330:21:2", + "src": "5251:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 995, + "id": 1026, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "5330:30:2", + "referencedDeclaration": 4016, + "src": "5251:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 998, + "id": 1029, "isConstant": false, "isLValue": false, "isPure": false, @@ -11177,7 +12065,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5330:42:2", + "src": "5251:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11190,13 +12078,13 @@ } }, "falseBody": null, - "id": 1011, + "id": 1042, "nodeType": "IfStatement", - "src": "5325:108:2", + "src": "5246:108:2", "trueBody": { - "id": 1010, + "id": 1041, "nodeType": "Block", - "src": "5374:59:2", + "src": "5295:59:2", "statements": [ { "expression": { @@ -11209,18 +12097,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1005, + "id": 1036, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5414:3:2", + "src": "5335:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1006, + "id": 1037, "isConstant": false, "isLValue": false, "isPure": false, @@ -11228,7 +12116,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5414:10:2", + "src": "5335:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11246,26 +12134,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1001, + "id": 1032, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5388:9:2", + "referencedDeclaration": 726, + "src": "5309:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 1003, + "id": 1034, "indexExpression": { "argumentTypes": null, - "id": 1002, + "id": 1033, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5398:10:2", + "referencedDeclaration": 1002, + "src": "5319:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11276,27 +12164,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5388:21:2", + "src": "5309:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1004, + "id": 1035, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "5388:25:2", + "referencedDeclaration": 3970, + "src": "5309:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 1007, + "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, @@ -11304,7 +12192,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5388:37:2", + "src": "5309:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11319,7 +12207,7 @@ "typeString": "bool" } ], - "id": 1000, + "id": 1031, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11327,13 +12215,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5380:7:2", + "src": "5301:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1008, + "id": 1039, "isConstant": false, "isLValue": false, "isPure": false, @@ -11341,16 +12229,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5380:46:2", + "src": "5301:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1009, + "id": 1040, "nodeType": "ExpressionStatement", - "src": "5380:46:2" + "src": "5301:46:2" } ] } @@ -11363,18 +12251,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1013, + "id": 1044, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5458:3:2", + "src": "5379:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1014, + "id": 1045, "isConstant": false, "isLValue": false, "isPure": false, @@ -11382,7 +12270,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5458:10:2", + "src": "5379:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11396,18 +12284,18 @@ "typeString": "address payable" } ], - "id": 1012, + "id": 1043, "name": "FlipperChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 734, - "src": "5443:14:2", + "referencedDeclaration": 739, + "src": "5364:14:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1015, + "id": 1046, "isConstant": false, "isLValue": false, "isPure": false, @@ -11415,29 +12303,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5443:26:2", + "src": "5364:26:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1016, + "id": 1047, "nodeType": "EmitStatement", - "src": "5438:31:2" + "src": "5359:31:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 1017, + "id": 1048, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5482:4:2", + "src": "5403:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11445,60 +12333,60 @@ }, "value": "true" }, - "functionReturnParameters": 979, - "id": 1018, + "functionReturnParameters": 1010, + "id": 1049, "nodeType": "Return", - "src": "5475:11:2" + "src": "5396:11:2" } ] }, "documentation": { - "id": 969, + "id": 1000, "nodeType": "StructuredDocumentation", - "src": "4889:201:2", + "src": "4810:201:2", "text": "@notice Flipper Challenge\n @dev Keeps track of the address of the caller if successful\n @dev guy, high bidder\n @return True if the caller successfully checked for activity on Flipper" }, "functionSelector": "9c1c94fd", - "id": 1020, + "id": 1051, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 976, + "id": 1007, "modifierName": { "argumentTypes": null, - "id": 975, + "id": 1006, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "5163:13:2", + "referencedDeclaration": 4198, + "src": "5084:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5163:13:2" + "src": "5084:13:2" } ], "name": "flipperChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 974, + "id": 1005, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 971, + "id": 1002, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5119:18:2", + "scope": 1051, + "src": "5040:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11506,10 +12394,10 @@ "typeString": "uint256" }, "typeName": { - "id": 970, + "id": 1001, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5119:7:2", + "src": "5040:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11520,13 +12408,13 @@ }, { "constant": false, - "id": 973, + "id": 1004, "mutability": "mutable", "name": "bidId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5139:13:2", + "scope": 1051, + "src": "5060:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11534,10 +12422,10 @@ "typeString": "uint256" }, "typeName": { - "id": 972, + "id": 1003, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5139:7:2", + "src": "5060:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11547,21 +12435,21 @@ "visibility": "internal" } ], - "src": "5118:35:2" + "src": "5039:35:2" }, "returnParameters": { - "id": 979, + "id": 1010, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 978, + "id": 1009, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5186:4:2", + "scope": 1051, + "src": "5107:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11569,10 +12457,10 @@ "typeString": "bool" }, "typeName": { - "id": 977, + "id": 1008, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5186:4:2", + "src": "5107:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11582,19 +12470,19 @@ "visibility": "internal" } ], - "src": "5185:6:2" + "src": "5106:6:2" }, - "scope": 1075, - "src": "5093:398:2", + "scope": 1106, + "src": "5014:398:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1039, + "id": 1070, "nodeType": "Block", - "src": "5750:53:2", + "src": "5671:53:2", "statements": [ { "expression": { @@ -11602,12 +12490,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1036, + "id": 1067, "name": "guy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "5794:3:2", + "referencedDeclaration": 1056, + "src": "5715:3:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11625,26 +12513,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1032, + "id": 1063, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5763:9:2", + "referencedDeclaration": 726, + "src": "5684:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 1034, + "id": 1065, "indexExpression": { "argumentTypes": null, - "id": 1033, + "id": 1064, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "5773:10:2", + "referencedDeclaration": 1054, + "src": "5694:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11655,27 +12543,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5763:21:2", + "src": "5684:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1035, + "id": 1066, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "5763:30:2", + "referencedDeclaration": 4016, + "src": "5684:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 1037, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, @@ -11683,67 +12571,67 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5763:35:2", + "src": "5684:35:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1031, - "id": 1038, + "functionReturnParameters": 1062, + "id": 1069, "nodeType": "Return", - "src": "5756:42:2" + "src": "5677:42:2" } ] }, "documentation": { - "id": 1021, + "id": 1052, "nodeType": "StructuredDocumentation", - "src": "5495:160:2", + "src": "5416:160:2", "text": "@notice Check if guy is a redeemer\n @dev Verify if the address of guy exists\n @param guy Address to verify\n @return True if guy is a redeemer" }, "functionSelector": "ebfa62b9", - "id": 1040, + "id": 1071, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1028, + "id": 1059, "modifierName": { "argumentTypes": null, - "id": 1027, + "id": 1058, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "5721:13:2", + "referencedDeclaration": 4198, + "src": "5642:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5721:13:2" + "src": "5642:13:2" } ], "name": "verify", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1026, + "id": 1057, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1023, + "id": 1054, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5674:18:2", + "scope": 1071, + "src": "5595:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11751,10 +12639,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1022, + "id": 1053, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5674:7:2", + "src": "5595:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11765,13 +12653,13 @@ }, { "constant": false, - "id": 1025, + "id": 1056, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5694:11:2", + "scope": 1071, + "src": "5615:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11779,10 +12667,10 @@ "typeString": "address" }, "typeName": { - "id": 1024, + "id": 1055, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5694:7:2", + "src": "5615:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11793,21 +12681,21 @@ "visibility": "internal" } ], - "src": "5673:33:2" + "src": "5594:33:2" }, "returnParameters": { - "id": 1031, + "id": 1062, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1030, + "id": 1061, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5744:4:2", + "scope": 1071, + "src": "5665:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11815,10 +12703,10 @@ "typeString": "bool" }, "typeName": { - "id": 1029, + "id": 1060, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5744:4:2", + "src": "5665:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11828,19 +12716,19 @@ "visibility": "internal" } ], - "src": "5743:6:2" + "src": "5664:6:2" }, - "scope": 1075, - "src": "5658:145:2", + "scope": 1106, + "src": "5579:145:2", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 1056, + "id": 1087, "nodeType": "Block", - "src": "5921:113:2", + "src": "5842:113:2", "statements": [ { "expression": { @@ -11851,12 +12739,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1046, + "id": 1077, "name": "PAUSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, - "src": "5943:11:2", + "referencedDeclaration": 719, + "src": "5864:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11866,18 +12754,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1047, + "id": 1078, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5956:3:2", + "src": "5877:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1048, + "id": 1079, "isConstant": false, "isLValue": false, "isPure": false, @@ -11885,7 +12773,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5956:10:2", + "src": "5877:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11903,18 +12791,18 @@ "typeString": "address payable" } ], - "id": 1045, + "id": 1076, "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, - "src": "5935:7:2", + "referencedDeclaration": 1238, + "src": "5856:7:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) view returns (bool)" } }, - "id": 1049, + "id": 1080, "isConstant": false, "isLValue": false, "isPure": false, @@ -11922,7 +12810,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5935:32:2", + "src": "5856:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11932,14 +12820,14 @@ { "argumentTypes": null, "hexValue": "4d616b65724261646765733a206d75737420686176652070617573657220726f6c6520746f207061757365", - "id": 1050, + "id": 1081, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5969:45:2", + "src": "5890:45:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d33b68c439b8482d10dd00f9785755fa4ae9979ec8a8ee9bf8b872747d1b8f67", @@ -11959,7 +12847,7 @@ "typeString": "literal_string \"MakerBadges: must have pauser role to pause\"" } ], - "id": 1044, + "id": 1075, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11967,13 +12855,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5927:7:2", + "src": "5848:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1051, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, @@ -11981,16 +12869,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5927:88:2", + "src": "5848:88:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1052, + "id": 1083, "nodeType": "ExpressionStatement", - "src": "5927:88:2" + "src": "5848:88:2" }, { "expression": { @@ -11998,18 +12886,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1053, + "id": 1084, "name": "_pause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4193, - "src": "6021:6:2", + "referencedDeclaration": 4224, + "src": "5942:6:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1054, + "id": 1085, "isConstant": false, "isLValue": false, "isPure": false, @@ -12017,27 +12905,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6021:8:2", + "src": "5942:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1055, + "id": 1086, "nodeType": "ExpressionStatement", - "src": "6021:8:2" + "src": "5942:8:2" } ] }, "documentation": { - "id": 1041, + "id": 1072, "nodeType": "StructuredDocumentation", - "src": "5807:85:2", + "src": "5728:85:2", "text": "@notice Pause all the functions\n @dev the caller must have the 'PAUSER_ROLE'" }, "functionSelector": "8456cb59", - "id": 1057, + "id": 1088, "implemented": true, "kind": "function", "modifiers": [], @@ -12045,28 +12933,28 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1042, + "id": 1073, "nodeType": "ParameterList", "parameters": [], - "src": "5909:2:2" + "src": "5830:2:2" }, "returnParameters": { - "id": 1043, + "id": 1074, "nodeType": "ParameterList", "parameters": [], - "src": "5921:0:2" + "src": "5842:0:2" }, - "scope": 1075, - "src": "5895:139:2", + "scope": 1106, + "src": "5816:139:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1073, + "id": 1104, "nodeType": "Block", - "src": "6156:127:2", + "src": "6077:127:2", "statements": [ { "expression": { @@ -12077,12 +12965,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1063, + "id": 1094, "name": "PAUSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, - "src": "6182:11:2", + "referencedDeclaration": 719, + "src": "6103:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12092,18 +12980,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1064, + "id": 1095, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "6195:3:2", + "src": "6116:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1065, + "id": 1096, "isConstant": false, "isLValue": false, "isPure": false, @@ -12111,7 +12999,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6195:10:2", + "src": "6116:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -12129,18 +13017,18 @@ "typeString": "address payable" } ], - "id": 1062, + "id": 1093, "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, - "src": "6174:7:2", + "referencedDeclaration": 1238, + "src": "6095:7:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) view returns (bool)" } }, - "id": 1066, + "id": 1097, "isConstant": false, "isLValue": false, "isPure": false, @@ -12148,7 +13036,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6174:32:2", + "src": "6095:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12158,14 +13046,14 @@ { "argumentTypes": null, "hexValue": "4d616b65724261646765733a206d75737420686176652070617573657220726f6c6520746f20756e7061757365", - "id": 1067, + "id": 1098, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6208:47:2", + "src": "6129:47:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e81d67bdac033cbd58eea8cc6d19c5b2672fe1faa73f3d7c71703b8e96106b7b", @@ -12185,7 +13073,7 @@ "typeString": "literal_string \"MakerBadges: must have pauser role to unpause\"" } ], - "id": 1061, + "id": 1092, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -12193,13 +13081,13 @@ -18 ], "referencedDeclaration": -18, - "src": "6166:7:2", + "src": "6087:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1068, + "id": 1099, "isConstant": false, "isLValue": false, "isPure": false, @@ -12207,16 +13095,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6166:90:2", + "src": "6087:90:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1069, + "id": 1100, "nodeType": "ExpressionStatement", - "src": "6166:90:2" + "src": "6087:90:2" }, { "expression": { @@ -12224,18 +13112,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1070, + "id": 1101, "name": "_unpause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4209, - "src": "6266:8:2", + "referencedDeclaration": 4240, + "src": "6187:8:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1071, + "id": 1102, "isConstant": false, "isLValue": false, "isPure": false, @@ -12243,27 +13131,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6266:10:2", + "src": "6187:10:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1072, + "id": 1103, "nodeType": "ExpressionStatement", - "src": "6266:10:2" + "src": "6187:10:2" } ] }, "documentation": { - "id": 1058, + "id": 1089, "nodeType": "StructuredDocumentation", - "src": "6038:87:2", + "src": "5959:87:2", "text": "@notice Unpause all the functions\n @dev the caller must have the 'PAUSER_ROLE'" }, "functionSelector": "3f4ba83a", - "id": 1074, + "id": 1105, "implemented": true, "kind": "function", "modifiers": [], @@ -12271,33 +13159,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1059, + "id": 1090, "nodeType": "ParameterList", "parameters": [], - "src": "6144:2:2" + "src": "6065:2:2" }, "returnParameters": { - "id": 1060, + "id": 1091, "nodeType": "ParameterList", "parameters": [], - "src": "6156:0:2" + "src": "6077:0:2" }, - "scope": 1075, - "src": "6128:155:2", + "scope": 1106, + "src": "6049:155:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 1076, - "src": "1381:4905:2" + "scope": 1107, + "src": "1381:4826:2" } ], - "src": "37:6250:2" + "src": "37:6171:2" }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": { "42": { @@ -12463,14 +13351,20 @@ } }, "links": {}, - "address": "0xf01684AfEA3a70457f8Ea806f371B4bd9aB582eb", - "transactionHash": "0xc72bed428fb502893cb4b4de3c274a76234ffb2af6f19390993eda97a3af20af" + "address": "0x9E8286abBfE37A7813e31468e4a586c5aB270cD0", + "transactionHash": "0x3c50c8572da5f9d55f85bc53ab959d7ce52271aebc7560572062add04616bfb0" } }, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-30T11:28:52.524Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:57:08.788Z", "networkType": "ethereum", "devdoc": { + "events": { + "PotChecked(address)": { + "details": "Events" + } + }, + "kind": "dev", "methods": { "chiefChallenge(uint256)": { "details": "Keeps track of the address of the caller if successful", @@ -12555,9 +13449,11 @@ "pot": { "details": "Data" } - } + }, + "version": 1 }, "userdoc": { + "kind": "user", "methods": { "chiefChallenge(uint256)": { "notice": "DSChief Challenge" @@ -12580,6 +13476,7 @@ "verify(uint256,address)": { "notice": "Check if guy is a redeemer" } - } + }, + "version": 1 } } \ No newline at end of file diff --git a/abi/MakerBadgesLike.json b/abi/MakerBadgesLike.json index 58324b6..6256dcd 100644 --- a/abi/MakerBadgesLike.json +++ b/abi/MakerBadgesLike.json @@ -45,13 +45,13 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"}],\"name\":\"roots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/sencha/maker-badges/contracts/BadgeFactory.sol\":\"MakerBadgesLike\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/sencha/maker-badges/contracts/BadgeFactory.sol\":{\"keccak256\":\"0x53f01b2eb5cc09965b6599b2938afb1c7add3f9d985a53dbf06241a70815d9bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://449754b1f6832fa06a5cf54112b9461794d9a1d73bffaa88bc5b766189941055\",\"dweb:/ipfs/QmUKY6SKMZa4xwbxqgiE6HuX87GgNK4ED6sTMoMFvPChCy\"]},\"/home/sencha/maker-badges/contracts/BadgeRoles.sol\":{\"keccak256\":\"0x272f85f9cb8e8d0e3bcc5e0b7269a777cf52ae93dfa4ac531eee8a5c6d2ae689\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://19add032eba97289f23395efe5dd3178c9d98b23e44bbdd0706615e554cca0dd\",\"dweb:/ipfs/QmXSMr9Ur3wVbWcVEchsmiBTtRQwyx4jti8W5EbjuZ4pGc\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x92f7900d382761c7faefeaced81c6b4f1aae909ed0551803bfe8f27101956360\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://407c0864143968542e5cf5aa7556916d2cf292b201e3dadb65662e9a3aa24187\",\"dweb:/ipfs/QmSnXzYAUaGLGr7uofRbgQraTJvatbjQLBPhyYiMd18oUJ\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"@openzeppelin/contracts/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x96a652802a06645a5908f74f104ec95ff0897e261e7028ee319bafc55582b597\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5afea8071316055c01a3d144da77523b8ae7ec8295e99559000cb07b23b98d30\",\"dweb:/ipfs/QmX14dHGgyErJb3R7wSNBSgxLdyX6EAVwJsZ6yK1xyG1Mo\"]},\"@openzeppelin/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0xb046d18f9d09683ca1c0ed6d80c61da8a8a7d9b30bad70a17b898538683eff74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4728713afa6ae36cc9e92c7107c796a313add3ec20f813be2cde76c814486b2a\",\"dweb:/ipfs/QmUJBTXvYaGDF5PVnd5pUvYerc9DRXvqANDzgCzAp3FkkA\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xfa152b6e88a1dc50780e8f1580426dc23ad2e1e2c2f086a088adf206a202f453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5127b264994adab88fae419b1c493efc5acd07134c19ee5c0397e50018291ebf\",\"dweb:/ipfs/QmWwJZVhvdmvUCdimbb6R2Jiu59zjPqm6XTMchM6LaEHAp\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x1071a23188ba7f5bb16f51b0b01a67fd41fe56f862d8f83985788cf46f3b91bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c7082ca99b93f2e541cafaad00ed32675adf0752eab78eccabcf91dec9fd5d73\",\"dweb:/ipfs/QmdqooMmYBQVi7p6subDFM4e1944AuLjZUpHMjGtae7Lgd\"]},\"@openzeppelin/contracts/token/ERC721/ERC721Burnable.sol\":{\"keccak256\":\"0x5181bc84ec1b054bffda75619dd01f2f760d101da24bdba6ca786f6966a35695\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15323e3edc0407ab3859fc4aeca39d12d5e2e21c9ee36cb87a2d4c128ff8ab00\",\"dweb:/ipfs/QmRz9vQa4Xx8X8V38oABZ2H4ALaki39ueyaSaytw5SFj2M\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x227bafd3e165b13f5d98c42a44376e48d41f4a265db8803f2707faaeae9659aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9aa7959a30871669ce46172cd117b084b607d602d9ce695ce79005582b0b69b\",\"dweb:/ipfs/QmXZUWeLXmArQinHL4RnacJLT22GvCExqREYM6pHLX7CX9\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\":{\"keccak256\":\"0x3636662804cd8f474536b2875a9038a4c3fb91879f1bbff48af5c3f140fcd2f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9fab8521263fa581544000cb57335a3f2e6bcdfbb5579d3ceaa5acf741c67c4f\",\"dweb:/ipfs/QmZfXnMom7JSNtfyie5yGPN1SUC4SmHbz4ScVBH88URmA7\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0xe7f984cedc00a138dc27f263c73c32ba9a4b2fd23b6c34ac46f46c074b943538\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f4acda12f076fe7584921241ddbb5b460ca7cad6cb8a42252ac7f2a9f539127\",\"dweb:/ipfs/QmQmfhkEv9GrhdWe67QtXnU19AMuoEmy31QnHPkucdYLjZ\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x321ee37ef4925020aa818a03ec7fe48e057561f65ab009a84f6c20c86026ade7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01f9d74a17a56024984251b97e428e24c9d3abffbae5bd290f0ec263c82e9694\",\"dweb:/ipfs/QmRryCuuXu2ukrDmatB8TqdEhPLiK6NBRt41RiPUaX1qKy\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0x2d68b8e6425249cd05cc0a66ea50cb5b8d10cbdac59c6de834e1002232813faf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3ce6b6ac17c67bba01e9c8c778f82f68fd4823bd083359cdd03040b70eeeba3\",\"dweb:/ipfs/QmX4t1jWwKaAkacvmQxEG5rBtLXg3EHw6pRjKhMZR8iw3n\"]},\"@openzeppelin/contracts/utils/EnumerableMap.sol\":{\"keccak256\":\"0x244e4b74b17716120cf28e58636f11c699b8c0c94628bd952a95cee038d7e32b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://198d566157120c526bd6b5086b32cae85a11389b8a538f533ba9f9447915da0e\",\"dweb:/ipfs/QmeE6d8KWERx7f1FVS5tMnitNJxBm2yWXRSEUBF7R6voLh\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c\",\"dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x79484115dbfa737054f73e041009a02eeb434dd81be5d684bf4255ad3b5ab558\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12c119699463450c2544f5b9d8709b5e9e9164c62948a79c3ec53423a051d969\",\"dweb:/ipfs/QmPJduzSAaekq447QeFqAp3E7dc8CnNk5ajofckJ4ahA7Q\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"}],\"name\":\"roots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/sencha/maker-badges/contracts/BadgeFactory.sol\":\"MakerBadgesLike\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/sencha/maker-badges/contracts/BadgeFactory.sol\":{\"keccak256\":\"0x341ad1a193f93e27815d76b2ef69e87b537a237e773c22f628a95e24306ae06c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://286229c79088a1113e4d0547a8be8882e18dd23b8f4e7adb398ab3e6fff695ca\",\"dweb:/ipfs/QmNxGtXaYEk9LQr6JaTD82hZshaHhpRfcRhCxjFFZDCZJ5\"]},\"/home/sencha/maker-badges/contracts/BadgeRoles.sol\":{\"keccak256\":\"0x30fb9b91a1a0ab7ccbfac78cb481e3b316f804581cb73b973bc5eb5f4b1e1a86\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5fb0a8b8b77684e4db3b4ae21b9c985fa2c38439f6e32b596fa40a2a2ad634e4\",\"dweb:/ipfs/QmZabUkMbDRunwLQGg7eWCW7wXM98xsERpakYsax718KQp\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x92f7900d382761c7faefeaced81c6b4f1aae909ed0551803bfe8f27101956360\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://407c0864143968542e5cf5aa7556916d2cf292b201e3dadb65662e9a3aa24187\",\"dweb:/ipfs/QmSnXzYAUaGLGr7uofRbgQraTJvatbjQLBPhyYiMd18oUJ\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"@openzeppelin/contracts/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x96a652802a06645a5908f74f104ec95ff0897e261e7028ee319bafc55582b597\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5afea8071316055c01a3d144da77523b8ae7ec8295e99559000cb07b23b98d30\",\"dweb:/ipfs/QmX14dHGgyErJb3R7wSNBSgxLdyX6EAVwJsZ6yK1xyG1Mo\"]},\"@openzeppelin/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0xb046d18f9d09683ca1c0ed6d80c61da8a8a7d9b30bad70a17b898538683eff74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4728713afa6ae36cc9e92c7107c796a313add3ec20f813be2cde76c814486b2a\",\"dweb:/ipfs/QmUJBTXvYaGDF5PVnd5pUvYerc9DRXvqANDzgCzAp3FkkA\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xfa152b6e88a1dc50780e8f1580426dc23ad2e1e2c2f086a088adf206a202f453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5127b264994adab88fae419b1c493efc5acd07134c19ee5c0397e50018291ebf\",\"dweb:/ipfs/QmWwJZVhvdmvUCdimbb6R2Jiu59zjPqm6XTMchM6LaEHAp\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x1071a23188ba7f5bb16f51b0b01a67fd41fe56f862d8f83985788cf46f3b91bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c7082ca99b93f2e541cafaad00ed32675adf0752eab78eccabcf91dec9fd5d73\",\"dweb:/ipfs/QmdqooMmYBQVi7p6subDFM4e1944AuLjZUpHMjGtae7Lgd\"]},\"@openzeppelin/contracts/token/ERC721/ERC721Burnable.sol\":{\"keccak256\":\"0x5181bc84ec1b054bffda75619dd01f2f760d101da24bdba6ca786f6966a35695\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15323e3edc0407ab3859fc4aeca39d12d5e2e21c9ee36cb87a2d4c128ff8ab00\",\"dweb:/ipfs/QmRz9vQa4Xx8X8V38oABZ2H4ALaki39ueyaSaytw5SFj2M\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x227bafd3e165b13f5d98c42a44376e48d41f4a265db8803f2707faaeae9659aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9aa7959a30871669ce46172cd117b084b607d602d9ce695ce79005582b0b69b\",\"dweb:/ipfs/QmXZUWeLXmArQinHL4RnacJLT22GvCExqREYM6pHLX7CX9\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\":{\"keccak256\":\"0x3636662804cd8f474536b2875a9038a4c3fb91879f1bbff48af5c3f140fcd2f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9fab8521263fa581544000cb57335a3f2e6bcdfbb5579d3ceaa5acf741c67c4f\",\"dweb:/ipfs/QmZfXnMom7JSNtfyie5yGPN1SUC4SmHbz4ScVBH88URmA7\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0xe7f984cedc00a138dc27f263c73c32ba9a4b2fd23b6c34ac46f46c074b943538\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f4acda12f076fe7584921241ddbb5b460ca7cad6cb8a42252ac7f2a9f539127\",\"dweb:/ipfs/QmQmfhkEv9GrhdWe67QtXnU19AMuoEmy31QnHPkucdYLjZ\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x321ee37ef4925020aa818a03ec7fe48e057561f65ab009a84f6c20c86026ade7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01f9d74a17a56024984251b97e428e24c9d3abffbae5bd290f0ec263c82e9694\",\"dweb:/ipfs/QmRryCuuXu2ukrDmatB8TqdEhPLiK6NBRt41RiPUaX1qKy\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0x2d68b8e6425249cd05cc0a66ea50cb5b8d10cbdac59c6de834e1002232813faf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3ce6b6ac17c67bba01e9c8c778f82f68fd4823bd083359cdd03040b70eeeba3\",\"dweb:/ipfs/QmX4t1jWwKaAkacvmQxEG5rBtLXg3EHw6pRjKhMZR8iw3n\"]},\"@openzeppelin/contracts/utils/EnumerableMap.sol\":{\"keccak256\":\"0x244e4b74b17716120cf28e58636f11c699b8c0c94628bd952a95cee038d7e32b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://198d566157120c526bd6b5086b32cae85a11389b8a538f533ba9f9447915da0e\",\"dweb:/ipfs/QmeE6d8KWERx7f1FVS5tMnitNJxBm2yWXRSEUBF7R6voLh\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c\",\"dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x79484115dbfa737054f73e041009a02eeb434dd81be5d684bf4255ad3b5ab558\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12c119699463450c2544f5b9d8709b5e9e9164c62948a79c3ec53423a051d969\",\"dweb:/ipfs/QmPJduzSAaekq447QeFqAp3E7dc8CnNk5ajofckJ4ahA7Q\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, "sourceMap": "", "deployedSourceMap": "", - "source": "/// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.6.10;\n\n/// @title Non-transferable Badges for Maker Ecosystem Activity, CDIP 18\n/// @author Nazzareno Massari @naszam\n/// @notice BadgeFactory to manage Templates and activate Non-transferable Badges by redeemers\n/// @dev See https://github.com/makerdao/community/issues/537\n/// @dev All function calls are currently implemented without side effects through TDD approach\n/// @dev OpenZeppelin library is used for secure contract development\n\nimport \"./BadgeRoles.sol\";\nimport \"@openzeppelin/contracts/utils/Counters.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/ERC721Burnable.sol\";\nimport \"@openzeppelin/contracts/cryptography/MerkleProof.sol\";\n\n\ninterface MakerBadgesLike {\n\n function verify(uint256 templateId, address guy) external view returns (bool);\n function roots(uint256 templateId) external view returns (bytes32);\n\n}\n\ncontract BadgeFactory is BadgeRoles, ERC721Burnable {\n\n /// @dev Libraries\n using SafeMath for uint256;\n using Counters for Counters.Counter;\n using MerkleProof for bytes32[];\n\n Counters.Counter private _tokenIdTracker;\n\n MakerBadgesLike internal immutable maker;\n\n mapping (uint256 => mapping (address => uint256)) public redeemed;\n\n /// @dev Events\n event NewTemplate(uint256 templateId, string name, string description, string image);\n event BadgeActivated(address redeemer, uint256 templateId, string tokenURI);\n\n struct BadgeTemplate {\n string name;\n string description;\n string image;\n address owner;\n }\n\n BadgeTemplate[] private templates;\n\n /// @dev Supplies of each badge template\n mapping(uint256 => uint256) private _templateQuantities;\n mapping(uint256 => uint256) private _tokenTemplates;\n\n constructor(address maker_)\n ERC721(\"MakerBadges\", \"MAKER\")\n public\n {\n _setBaseURI(\"https://badges.makerdao.com/token/\");\n maker = MakerBadgesLike(maker_);\n\n }\n\n /// @notice Fallback function\n /// @dev Added not payable to revert transactions not matching any other function which send value\n fallback() external {\n revert();\n }\n\n /// @notice Set the baseURI\n /// @dev Update the baseURI specified in the constructor\n /// @param baseURI New baseURI\n /// @return True if the new baseURI is set\n function setBaseURI(string calldata baseURI) external onlyOwner returns (bool) {\n _setBaseURI(baseURI);\n return true;\n }\n\n /// @notice Mint new token with tokenURI\n /// @dev Use an auto-generated tokenId\n /// @dev automatically concatenate baseURI with tokenURI via abi.encodePacked\n /// @param to owner of the new token\n /// @param tokenURI an .json filename\n /// @return True if the new token is minted\n function _mintWithTokenURI(address to, string calldata tokenURI) private returns (bool) {\n _mint(to, _tokenIdTracker.current());\n _setTokenURI(_tokenIdTracker.current(), tokenURI);\n _tokenIdTracker.increment();\n return true;\n }\n\n /// @notice Getter function for templates\n /// @dev Check if templateId exists\n /// @param templateId Template Id of the template to return\n /// @return name description image Of the specified templateId\n function getTemplate(uint256 templateId) external view whenNotPaused returns (string memory name, string memory description, string memory image) {\n require(templates.length > templateId, \"No template with that id\");\n BadgeTemplate memory template = templates[templateId];\n return (template.name, template.description, template.image);\n }\n\n\n /// @dev Templates\n\n /// @notice Getter function for templates count\n /// @dev Return lenght of template array\n /// @return count The current number of templates\n function getTemplatesCount() external view whenNotPaused returns (uint256 count) {\n return templates.length;\n }\n\n /// @notice Create a new template\n /// @dev Access restricted to only Templaters\n /// @param name The name of the new template\n /// @param description A description of the new template\n /// @param image A filename of the new template\n /// @return True If the new Template is Created\n function createTemplate(string calldata name, string calldata description, string calldata image) external onlyTemplater whenNotPaused returns (bool) {\n\n BadgeTemplate memory _newTemplate = BadgeTemplate({\n name: name,\n owner: msg.sender,\n description: description,\n image: image\n });\n templates.push(_newTemplate);\n uint256 _templateId = templates.length.sub(1);\n emit NewTemplate(_templateId, name, description, image);\n return true;\n }\n\n /// @dev Badges\n\n /// @notice Getter function for templateId associated with the tokenId\n /// @dev Check if the tokenId exists\n /// @param tokenId Token Id of the Badge\n /// @return Template Id associated with the tokenId\n function getBadgeTemplate(uint256 tokenId) public view whenNotPaused returns (uint256) {\n require(_exists(tokenId), \"ERC721: No token with that id\");\n return _tokenTemplates[tokenId];\n }\n\n /// @notice Getter function for number of badges associated with templateId\n /// @dev Check if the template Id exists\n /// @param templateId Template Id\n /// @return Quantity of Badges associated with templateId\n function getBadgeTemplateQuantity(uint256 templateId) external view whenNotPaused returns (uint256) {\n require(templates.length > templateId, \"No template with that id\");\n return _templateQuantities[templateId];\n }\n\n /// @notice Activate Badge by redeemers\n /// @dev Verify if the caller is a redeemer\n /// @param proof Merkle Proof\n /// @param templateId Template Id\n /// @param tokenURI Token URI\n /// @return True If the new Badge is Activated\n function activateBadge(bytes32[] calldata proof, uint256 templateId, string calldata tokenURI) external whenNotPaused returns (bool) {\n require(templates.length > templateId, \"No template with that id\");\n require(redeemed[templateId][msg.sender] == 0, \"Badge already activated!\");\n require(maker.verify(templateId, msg.sender) || proof.verify(maker.roots(templateId), keccak256(abi.encodePacked(msg.sender))), \"Caller is not a redeemer\");\n\n /// @dev Increase the quantities\n _tokenTemplates[_tokenIdTracker.current()] = templateId;\n _templateQuantities[templateId] = _templateQuantities[templateId].add(1);\n redeemed[templateId][msg.sender] = 1;\n\n require(_mintWithTokenURI(msg.sender, tokenURI), \"ERC721: Token not minted\");\n\n emit BadgeActivated(msg.sender, templateId, tokenURI);\n return true;\n }\n\n /// @notice Burn Badge\n /// @dev burn() Check if the caller is approved or owner of the Badge\n /// @param tokenId Token Id of the Badge to burn\n /// @return True if the Badge has been burned\n function burnBadge(uint256 tokenId) external whenNotPaused returns (bool){\n uint256 templateId = getBadgeTemplate(tokenId);\n _templateQuantities[templateId] = _templateQuantities[templateId].sub(1);\n burn(tokenId);\n return true;\n }\n\n /// @notice ERC721 _transfer() Disabled\n /// @dev _transfer() has been overriden\n /// @dev reverts on transferFrom() and safeTransferFrom()\n function _transfer(address from, address to, uint256 tokenId) internal override {\n require(false, \"ERC721: token transfer disabled\");\n super._transfer(from, to, tokenId);\n }\n\n}\n", + "source": "/// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.6.11;\n\n/// @title Non-transferable Badges for Maker Ecosystem Activity, CDIP 18\n/// @author Nazzareno Massari @naszam\n/// @notice BadgeFactory to manage Templates and activate Non-transferable Badges by redeemers\n/// @dev See https://github.com/makerdao/community/issues/537\n/// @dev All function calls are currently implemented without side effects through TDD approach\n/// @dev OpenZeppelin library is used for secure contract development\n\nimport \"./BadgeRoles.sol\";\nimport \"@openzeppelin/contracts/utils/Counters.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/ERC721Burnable.sol\";\nimport \"@openzeppelin/contracts/cryptography/MerkleProof.sol\";\n\n\ninterface MakerBadgesLike {\n\n function verify(uint256 templateId, address guy) external view returns (bool);\n function roots(uint256 templateId) external view returns (bytes32);\n\n}\n\ncontract BadgeFactory is BadgeRoles, ERC721Burnable {\n\n /// @dev Libraries\n using SafeMath for uint256;\n using Counters for Counters.Counter;\n using MerkleProof for bytes32[];\n\n Counters.Counter private _tokenIdTracker;\n\n MakerBadgesLike internal immutable maker;\n\n mapping (uint256 => mapping (address => uint256)) public redeemed;\n\n /// @dev Events\n event NewTemplate(uint256 templateId, string name, string description, string image);\n event BadgeActivated(address redeemer, uint256 templateId, string tokenURI);\n\n struct BadgeTemplate {\n string name;\n string description;\n string image;\n address owner;\n }\n\n BadgeTemplate[] private templates;\n\n /// @dev Supplies of each badge template\n mapping(uint256 => uint256) private _templateQuantities;\n mapping(uint256 => uint256) private _tokenTemplates;\n\n constructor(address maker_)\n ERC721(\"MakerBadges\", \"MAKER\")\n public\n {\n _setBaseURI(\"https://badges.makerdao.com/token/\");\n maker = MakerBadgesLike(maker_);\n\n }\n\n /// @notice Fallback function\n /// @dev Added not payable to revert transactions not matching any other function which send value\n fallback() external {\n revert();\n }\n\n /// @notice Set the baseURI\n /// @dev Update the baseURI specified in the constructor\n /// @param baseURI New baseURI\n /// @return True if the new baseURI is set\n function setBaseURI(string calldata baseURI) external onlyOwner returns (bool) {\n _setBaseURI(baseURI);\n return true;\n }\n\n /// @notice Mint new token with tokenURI\n /// @dev Use an auto-generated tokenId\n /// @dev automatically concatenate baseURI with tokenURI via abi.encodePacked\n /// @param to owner of the new token\n /// @param tokenURI an .json filename\n /// @return True if the new token is minted\n function _mintWithTokenURI(address to, string calldata tokenURI) private returns (bool) {\n _mint(to, _tokenIdTracker.current());\n _setTokenURI(_tokenIdTracker.current(), tokenURI);\n _tokenIdTracker.increment();\n return true;\n }\n\n /// @notice Getter function for templates\n /// @dev Check if templateId exists\n /// @param templateId Template Id of the template to return\n /// @return name description image Of the specified templateId\n function getTemplate(uint256 templateId) external view whenNotPaused returns (string memory name, string memory description, string memory image) {\n require(templates.length > templateId, \"No template with that id\");\n BadgeTemplate memory template = templates[templateId];\n return (template.name, template.description, template.image);\n }\n\n\n /// @dev Templates\n\n /// @notice Getter function for templates count\n /// @dev Return lenght of template array\n /// @return count The current number of templates\n function getTemplatesCount() external view whenNotPaused returns (uint256 count) {\n return templates.length;\n }\n\n /// @notice Create a new template\n /// @dev Access restricted to only Templaters\n /// @param name The name of the new template\n /// @param description A description of the new template\n /// @param image A filename of the new template\n /// @return True If the new Template is Created\n function createTemplate(string calldata name, string calldata description, string calldata image) external onlyTemplater whenNotPaused returns (bool) {\n\n BadgeTemplate memory _newTemplate = BadgeTemplate({\n name: name,\n owner: msg.sender,\n description: description,\n image: image\n });\n templates.push(_newTemplate);\n uint256 _templateId = templates.length.sub(1);\n emit NewTemplate(_templateId, name, description, image);\n return true;\n }\n\n /// @dev Badges\n\n /// @notice Getter function for templateId associated with the tokenId\n /// @dev Check if the tokenId exists\n /// @param tokenId Token Id of the Badge\n /// @return Template Id associated with the tokenId\n function getBadgeTemplate(uint256 tokenId) public view whenNotPaused returns (uint256) {\n require(_exists(tokenId), \"ERC721: No token with that id\");\n return _tokenTemplates[tokenId];\n }\n\n /// @notice Getter function for number of badges associated with templateId\n /// @dev Check if the template Id exists\n /// @param templateId Template Id\n /// @return Quantity of Badges associated with templateId\n function getBadgeTemplateQuantity(uint256 templateId) external view whenNotPaused returns (uint256) {\n require(templates.length > templateId, \"No template with that id\");\n return _templateQuantities[templateId];\n }\n\n /// @notice Activate Badge by redeemers\n /// @dev Verify if the caller is a redeemer\n /// @param proof Merkle Proof\n /// @param templateId Template Id\n /// @param tokenURI Token URI\n /// @return True If the new Badge is Activated\n function activateBadge(bytes32[] calldata proof, uint256 templateId, string calldata tokenURI) external whenNotPaused returns (bool) {\n require(templates.length > templateId, \"No template with that id\");\n require(redeemed[templateId][msg.sender] == 0, \"Badge already activated!\");\n require(maker.verify(templateId, msg.sender) || proof.verify(maker.roots(templateId), keccak256(abi.encodePacked(msg.sender))), \"Caller is not a redeemer\");\n\n /// @dev Increase the quantities\n _tokenTemplates[_tokenIdTracker.current()] = templateId;\n _templateQuantities[templateId] = _templateQuantities[templateId].add(1);\n redeemed[templateId][msg.sender] = 1;\n\n require(_mintWithTokenURI(msg.sender, tokenURI), \"ERC721: Token not minted\");\n\n emit BadgeActivated(msg.sender, templateId, tokenURI);\n return true;\n }\n\n /// @notice Burn Badge\n /// @dev burn() Check if the caller is approved or owner of the Badge\n /// @param tokenId Token Id of the Badge to burn\n /// @return True if the Badge has been burned\n function burnBadge(uint256 tokenId) external whenNotPaused returns (bool){\n uint256 templateId = getBadgeTemplate(tokenId);\n _templateQuantities[templateId] = _templateQuantities[templateId].sub(1);\n burn(tokenId);\n return true;\n }\n\n /// @notice ERC721 _transfer() Disabled\n /// @dev _transfer() has been overriden\n /// @dev reverts on transferFrom() and safeTransferFrom()\n function _transfer(address from, address to, uint256 tokenId) internal override {\n require(false, \"ERC721: token transfer disabled\");\n super._transfer(from, to, tokenId);\n }\n\n}\n", "sourcePath": "/home/sencha/maker-badges/contracts/BadgeFactory.sol", "ast": { "absolutePath": "/home/sencha/maker-badges/contracts/BadgeFactory.sol", @@ -72,7 +72,7 @@ "literals": [ "solidity", "0.6", - ".10" + ".11" ], "nodeType": "PragmaDirective", "src": "37:23:0" @@ -94,7 +94,7 @@ "id": 3, "nodeType": "ImportDirective", "scope": 475, - "sourceUnit": 3271, + "sourceUnit": 3302, "src": "524:52:0", "symbolAliases": [], "unitAlias": "" @@ -105,7 +105,7 @@ "id": 4, "nodeType": "ImportDirective", "scope": 475, - "sourceUnit": 2825, + "sourceUnit": 2856, "src": "577:65:0", "symbolAliases": [], "unitAlias": "" @@ -116,7 +116,7 @@ "id": 5, "nodeType": "ImportDirective", "scope": 475, - "sourceUnit": 1599, + "sourceUnit": 1630, "src": "643:62:0", "symbolAliases": [], "unitAlias": "" @@ -370,10 +370,10 @@ "id": 25, "name": "ERC721Burnable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2824, + "referencedDeclaration": 2855, "src": "933:14:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Burnable_$2824", + "typeIdentifier": "t_contract$_ERC721Burnable_$2855", "typeString": "contract ERC721Burnable" } }, @@ -384,17 +384,17 @@ ], "contractDependencies": [ 633, - 1135, - 1418, - 1527, - 1655, - 1667, - 2794, - 2824, - 2940, + 1166, + 1449, + 1558, + 1686, + 1698, + 2825, + 2855, 2971, - 2998, - 4210 + 3002, + 3029, + 4241 ], "contractKind": "contract", "documentation": null, @@ -402,18 +402,18 @@ "id": 474, "linearizedBaseContracts": [ 474, - 2824, - 2794, + 2855, + 2825, + 3002, + 3029, 2971, - 2998, - 2940, - 1655, - 1667, + 1686, + 1698, 633, - 4210, - 1418, - 1527, - 1135 + 4241, + 1449, + 1558, + 1166 ], "name": "BadgeFactory", "nodeType": "ContractDefinition", @@ -425,10 +425,10 @@ "id": 27, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1863, + "referencedDeclaration": 1894, "src": "980:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1863", + "typeIdentifier": "t_contract$_SafeMath_$1894", "typeString": "library SafeMath" } }, @@ -452,10 +452,10 @@ "id": 30, "name": "Counters", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3270, + "referencedDeclaration": 3301, "src": "1010:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$3270", + "typeIdentifier": "t_contract$_Counters_$3301", "typeString": "library Counters" } }, @@ -466,10 +466,10 @@ "id": 31, "name": "Counters.Counter", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3230, + "referencedDeclaration": 3261, "src": "1023:16:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter" } } @@ -481,10 +481,10 @@ "id": 33, "name": "MerkleProof", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1598, + "referencedDeclaration": 1629, "src": "1049:11:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_MerkleProof_$1598", + "typeIdentifier": "t_contract$_MerkleProof_$1629", "typeString": "library MerkleProof" } }, @@ -523,7 +523,7 @@ "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage", + "typeIdentifier": "t_struct$_Counter_$3261_storage", "typeString": "struct Counters.Counter" }, "typeName": { @@ -531,10 +531,10 @@ "id": 37, "name": "Counters.Counter", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3230, + "referencedDeclaration": 3261, "src": "1079:16:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter" } }, @@ -1181,7 +1181,7 @@ "name": "_setBaseURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2702, + "referencedDeclaration": 2733, "src": "1811:11:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", @@ -1343,10 +1343,10 @@ "name": "ERC721", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2794, + "referencedDeclaration": 2825, "src": "1761:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721_$2794_$", + "typeIdentifier": "t_type$_t_contract$_ERC721_$2825_$", "typeString": "type(contract ERC721)" } }, @@ -1518,7 +1518,7 @@ "name": "_setBaseURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2702, + "referencedDeclaration": 2733, "src": "2335:11:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", @@ -1590,7 +1590,7 @@ "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, + "referencedDeclaration": 1507, "src": "2304:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -1717,7 +1717,7 @@ "referencedDeclaration": 38, "src": "2785:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage", + "typeIdentifier": "t_struct$_Counter_$3261_storage", "typeString": "struct Counters.Counter storage ref" } }, @@ -1728,10 +1728,10 @@ "lValueRequested": false, "memberName": "current", "nodeType": "MemberAccess", - "referencedDeclaration": 3241, + "referencedDeclaration": 3272, "src": "2785:23:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3230_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3230_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3261_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3261_storage_ptr_$", "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" } }, @@ -1766,7 +1766,7 @@ "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2530, + "referencedDeclaration": 2561, "src": "2775:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", @@ -1810,7 +1810,7 @@ "referencedDeclaration": 38, "src": "2830:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage", + "typeIdentifier": "t_struct$_Counter_$3261_storage", "typeString": "struct Counters.Counter storage ref" } }, @@ -1821,10 +1821,10 @@ "lValueRequested": false, "memberName": "current", "nodeType": "MemberAccess", - "referencedDeclaration": 3241, + "referencedDeclaration": 3272, "src": "2830:23:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3230_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3230_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3261_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3261_storage_ptr_$", "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" } }, @@ -1872,7 +1872,7 @@ "name": "_setTokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2691, + "referencedDeclaration": 2722, "src": "2817:12:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", @@ -1913,7 +1913,7 @@ "referencedDeclaration": 38, "src": "2872:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage", + "typeIdentifier": "t_struct$_Counter_$3261_storage", "typeString": "struct Counters.Counter storage ref" } }, @@ -1924,10 +1924,10 @@ "lValueRequested": false, "memberName": "increment", "nodeType": "MemberAccess", - "referencedDeclaration": 3253, + "referencedDeclaration": 3284, "src": "2872:25:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$3230_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$3230_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$3261_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$3261_storage_ptr_$", "typeString": "function (struct Counters.Counter storage pointer)" } }, @@ -2440,7 +2440,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "3189:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -2649,7 +2649,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "3697:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -3049,7 +3049,7 @@ "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1713, + "referencedDeclaration": 1744, "src": "4438:20:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -3245,7 +3245,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "4184:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -3429,7 +3429,7 @@ "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2387, + "referencedDeclaration": 2418, "src": "4877:7:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", @@ -3582,7 +3582,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "4831:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -3874,7 +3874,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "5258:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -4621,7 +4621,7 @@ "lValueRequested": false, "memberName": "verify", "nodeType": "MemberAccess", - "referencedDeclaration": 1597, + "referencedDeclaration": 1628, "src": "5991:12:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$bound_to$_t_array$_t_bytes32_$dyn_memory_ptr_$", @@ -4750,7 +4750,7 @@ "referencedDeclaration": 38, "src": "6158:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage", + "typeIdentifier": "t_struct$_Counter_$3261_storage", "typeString": "struct Counters.Counter storage ref" } }, @@ -4761,10 +4761,10 @@ "lValueRequested": false, "memberName": "current", "nodeType": "MemberAccess", - "referencedDeclaration": 3241, + "referencedDeclaration": 3272, "src": "6158:23:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3230_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3230_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3261_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3261_storage_ptr_$", "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" } }, @@ -4945,7 +4945,7 @@ "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1696, + "referencedDeclaration": 1727, "src": "6237:35:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -5399,7 +5399,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "5756:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -5775,7 +5775,7 @@ "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1713, + "referencedDeclaration": 1744, "src": "6847:35:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -5836,7 +5836,7 @@ "name": "burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2823, + "referencedDeclaration": 2854, "src": "6891:4:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", @@ -5908,7 +5908,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "6727:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -6000,7 +6000,7 @@ }, { "baseFunctions": [ - 2669 + 2700 ], "body": { "id": 472, @@ -6171,7 +6171,7 @@ "lValueRequested": false, "memberName": "_transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2669, + "referencedDeclaration": 2700, "src": "7215:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", @@ -6348,7 +6348,7 @@ "literals": [ "solidity", "0.6", - ".10" + ".11" ], "nodeType": "PragmaDirective", "src": "37:23:0" @@ -6370,7 +6370,7 @@ "id": 3, "nodeType": "ImportDirective", "scope": 475, - "sourceUnit": 3271, + "sourceUnit": 3302, "src": "524:52:0", "symbolAliases": [], "unitAlias": "" @@ -6381,7 +6381,7 @@ "id": 4, "nodeType": "ImportDirective", "scope": 475, - "sourceUnit": 2825, + "sourceUnit": 2856, "src": "577:65:0", "symbolAliases": [], "unitAlias": "" @@ -6392,7 +6392,7 @@ "id": 5, "nodeType": "ImportDirective", "scope": 475, - "sourceUnit": 1599, + "sourceUnit": 1630, "src": "643:62:0", "symbolAliases": [], "unitAlias": "" @@ -6646,10 +6646,10 @@ "id": 25, "name": "ERC721Burnable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2824, + "referencedDeclaration": 2855, "src": "933:14:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Burnable_$2824", + "typeIdentifier": "t_contract$_ERC721Burnable_$2855", "typeString": "contract ERC721Burnable" } }, @@ -6660,17 +6660,17 @@ ], "contractDependencies": [ 633, - 1135, - 1418, - 1527, - 1655, - 1667, - 2794, - 2824, - 2940, + 1166, + 1449, + 1558, + 1686, + 1698, + 2825, + 2855, 2971, - 2998, - 4210 + 3002, + 3029, + 4241 ], "contractKind": "contract", "documentation": null, @@ -6678,18 +6678,18 @@ "id": 474, "linearizedBaseContracts": [ 474, - 2824, - 2794, + 2855, + 2825, + 3002, + 3029, 2971, - 2998, - 2940, - 1655, - 1667, + 1686, + 1698, 633, - 4210, - 1418, - 1527, - 1135 + 4241, + 1449, + 1558, + 1166 ], "name": "BadgeFactory", "nodeType": "ContractDefinition", @@ -6701,10 +6701,10 @@ "id": 27, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1863, + "referencedDeclaration": 1894, "src": "980:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1863", + "typeIdentifier": "t_contract$_SafeMath_$1894", "typeString": "library SafeMath" } }, @@ -6728,10 +6728,10 @@ "id": 30, "name": "Counters", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3270, + "referencedDeclaration": 3301, "src": "1010:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$3270", + "typeIdentifier": "t_contract$_Counters_$3301", "typeString": "library Counters" } }, @@ -6742,10 +6742,10 @@ "id": 31, "name": "Counters.Counter", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3230, + "referencedDeclaration": 3261, "src": "1023:16:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter" } } @@ -6757,10 +6757,10 @@ "id": 33, "name": "MerkleProof", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1598, + "referencedDeclaration": 1629, "src": "1049:11:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_MerkleProof_$1598", + "typeIdentifier": "t_contract$_MerkleProof_$1629", "typeString": "library MerkleProof" } }, @@ -6799,7 +6799,7 @@ "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage", + "typeIdentifier": "t_struct$_Counter_$3261_storage", "typeString": "struct Counters.Counter" }, "typeName": { @@ -6807,10 +6807,10 @@ "id": 37, "name": "Counters.Counter", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3230, + "referencedDeclaration": 3261, "src": "1079:16:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage_ptr", + "typeIdentifier": "t_struct$_Counter_$3261_storage_ptr", "typeString": "struct Counters.Counter" } }, @@ -7457,7 +7457,7 @@ "name": "_setBaseURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2702, + "referencedDeclaration": 2733, "src": "1811:11:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", @@ -7619,10 +7619,10 @@ "name": "ERC721", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2794, + "referencedDeclaration": 2825, "src": "1761:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721_$2794_$", + "typeIdentifier": "t_type$_t_contract$_ERC721_$2825_$", "typeString": "type(contract ERC721)" } }, @@ -7794,7 +7794,7 @@ "name": "_setBaseURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2702, + "referencedDeclaration": 2733, "src": "2335:11:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", @@ -7866,7 +7866,7 @@ "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, + "referencedDeclaration": 1507, "src": "2304:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -7993,7 +7993,7 @@ "referencedDeclaration": 38, "src": "2785:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage", + "typeIdentifier": "t_struct$_Counter_$3261_storage", "typeString": "struct Counters.Counter storage ref" } }, @@ -8004,10 +8004,10 @@ "lValueRequested": false, "memberName": "current", "nodeType": "MemberAccess", - "referencedDeclaration": 3241, + "referencedDeclaration": 3272, "src": "2785:23:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3230_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3230_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3261_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3261_storage_ptr_$", "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" } }, @@ -8042,7 +8042,7 @@ "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2530, + "referencedDeclaration": 2561, "src": "2775:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", @@ -8086,7 +8086,7 @@ "referencedDeclaration": 38, "src": "2830:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage", + "typeIdentifier": "t_struct$_Counter_$3261_storage", "typeString": "struct Counters.Counter storage ref" } }, @@ -8097,10 +8097,10 @@ "lValueRequested": false, "memberName": "current", "nodeType": "MemberAccess", - "referencedDeclaration": 3241, + "referencedDeclaration": 3272, "src": "2830:23:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3230_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3230_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3261_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3261_storage_ptr_$", "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" } }, @@ -8148,7 +8148,7 @@ "name": "_setTokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2691, + "referencedDeclaration": 2722, "src": "2817:12:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", @@ -8189,7 +8189,7 @@ "referencedDeclaration": 38, "src": "2872:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage", + "typeIdentifier": "t_struct$_Counter_$3261_storage", "typeString": "struct Counters.Counter storage ref" } }, @@ -8200,10 +8200,10 @@ "lValueRequested": false, "memberName": "increment", "nodeType": "MemberAccess", - "referencedDeclaration": 3253, + "referencedDeclaration": 3284, "src": "2872:25:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$3230_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$3230_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$3261_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$3261_storage_ptr_$", "typeString": "function (struct Counters.Counter storage pointer)" } }, @@ -8716,7 +8716,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "3189:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -8925,7 +8925,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "3697:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -9325,7 +9325,7 @@ "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1713, + "referencedDeclaration": 1744, "src": "4438:20:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -9521,7 +9521,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "4184:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -9705,7 +9705,7 @@ "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2387, + "referencedDeclaration": 2418, "src": "4877:7:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", @@ -9858,7 +9858,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "4831:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -10150,7 +10150,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "5258:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -10897,7 +10897,7 @@ "lValueRequested": false, "memberName": "verify", "nodeType": "MemberAccess", - "referencedDeclaration": 1597, + "referencedDeclaration": 1628, "src": "5991:12:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$bound_to$_t_array$_t_bytes32_$dyn_memory_ptr_$", @@ -11026,7 +11026,7 @@ "referencedDeclaration": 38, "src": "6158:15:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$3230_storage", + "typeIdentifier": "t_struct$_Counter_$3261_storage", "typeString": "struct Counters.Counter storage ref" } }, @@ -11037,10 +11037,10 @@ "lValueRequested": false, "memberName": "current", "nodeType": "MemberAccess", - "referencedDeclaration": 3241, + "referencedDeclaration": 3272, "src": "6158:23:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3230_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3230_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$3261_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$3261_storage_ptr_$", "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" } }, @@ -11221,7 +11221,7 @@ "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1696, + "referencedDeclaration": 1727, "src": "6237:35:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -11675,7 +11675,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "5756:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -12051,7 +12051,7 @@ "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1713, + "referencedDeclaration": 1744, "src": "6847:35:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -12112,7 +12112,7 @@ "name": "burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2823, + "referencedDeclaration": 2854, "src": "6891:4:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", @@ -12184,7 +12184,7 @@ "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "6727:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -12276,7 +12276,7 @@ }, { "baseFunctions": [ - 2669 + 2700 ], "body": { "id": 472, @@ -12447,7 +12447,7 @@ "lValueRequested": false, "memberName": "_transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2669, + "referencedDeclaration": 2700, "src": "7215:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", @@ -12607,15 +12607,19 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:05.879Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.573Z", "devdoc": { - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/MerkleProof.json b/abi/MerkleProof.json index 36e1277..ee22dbc 100644 --- a/abi/MerkleProof.json +++ b/abi/MerkleProof.json @@ -1,9 +1,9 @@ { "contractName": "MerkleProof", "abi": [], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"These functions deal with verification of Merkle trees (hash trees),\",\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/cryptography/MerkleProof.sol\":\"MerkleProof\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x96a652802a06645a5908f74f104ec95ff0897e261e7028ee319bafc55582b597\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5afea8071316055c01a3d144da77523b8ae7ec8295e99559000cb07b23b98d30\",\"dweb:/ipfs/QmX14dHGgyErJb3R7wSNBSgxLdyX6EAVwJsZ6yK1xyG1Mo\"]}},\"version\":1}", - "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d3d9a2ff0badfffe754daafe0c834b745a35f9fb534f587e75307851025da09664736f6c634300060a0033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d3d9a2ff0badfffe754daafe0c834b745a35f9fb534f587e75307851025da09664736f6c634300060a0033", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"These functions deal with verification of Merkle trees (hash trees),\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/cryptography/MerkleProof.sol\":\"MerkleProof\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x96a652802a06645a5908f74f104ec95ff0897e261e7028ee319bafc55582b597\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5afea8071316055c01a3d144da77523b8ae7ec8295e99559000cb07b23b98d30\",\"dweb:/ipfs/QmX14dHGgyErJb3R7wSNBSgxLdyX6EAVwJsZ6yK1xyG1Mo\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a8f5ec1df2af4a0c6ef9a8759304848d4781967f5e1b9008858e512e77d3aff664736f6c634300060b0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a8f5ec1df2af4a0c6ef9a8759304848d4781967f5e1b9008858e512e77d3aff664736f6c634300060b0033", "immutableReferences": {}, "sourceMap": "143:1135:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", "deployedSourceMap": "143:1135:7:-:0;;;;;;;;", @@ -13,15 +13,15 @@ "absolutePath": "@openzeppelin/contracts/cryptography/MerkleProof.sol", "exportedSymbols": { "MerkleProof": [ - 1598 + 1629 ] }, - "id": 1599, + "id": 1630, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1529, + "id": 1560, "literals": [ "solidity", "^", @@ -37,38 +37,38 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 1530, + "id": 1561, "nodeType": "StructuredDocumentation", "src": "58:84:7", "text": " @dev These functions deal with verification of Merkle trees (hash trees)," }, "fullyImplemented": true, - "id": 1598, + "id": 1629, "linearizedBaseContracts": [ - 1598 + 1629 ], "name": "MerkleProof", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1596, + "id": 1627, "nodeType": "Block", "src": "594:682:7", "statements": [ { "assignments": [ - 1544 + 1575 ], "declarations": [ { "constant": false, - "id": 1544, + "id": 1575, "mutability": "mutable", "name": "computedHash", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1596, + "scope": 1627, "src": "604:20:7", "stateVariable": false, "storageLocation": "default", @@ -77,7 +77,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1543, + "id": 1574, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "604:7:7", @@ -90,14 +90,14 @@ "visibility": "internal" } ], - "id": 1546, + "id": 1577, "initialValue": { "argumentTypes": null, - "id": 1545, + "id": 1576, "name": "leaf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1538, + "referencedDeclaration": 1569, "src": "627:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -109,23 +109,23 @@ }, { "body": { - "id": 1590, + "id": 1621, "nodeType": "Block", "src": "685:472:7", "statements": [ { "assignments": [ - 1559 + 1590 ], "declarations": [ { "constant": false, - "id": 1559, + "id": 1590, "mutability": "mutable", "name": "proofElement", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1590, + "scope": 1621, "src": "699:20:7", "stateVariable": false, "storageLocation": "default", @@ -134,7 +134,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1558, + "id": 1589, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "699:7:7", @@ -147,30 +147,30 @@ "visibility": "internal" } ], - "id": 1563, + "id": 1594, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1560, + "id": 1591, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1534, + "referencedDeclaration": 1565, "src": "722:5:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 1562, + "id": 1593, "indexExpression": { "argumentTypes": null, - "id": 1561, + "id": 1592, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1548, + "referencedDeclaration": 1579, "src": "728:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -198,18 +198,18 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 1566, + "id": 1597, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1564, + "id": 1595, "name": "computedHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1544, + "referencedDeclaration": 1575, "src": "749:12:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -220,11 +220,11 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1565, + "id": 1596, "name": "proofElement", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1559, + "referencedDeclaration": 1590, "src": "765:12:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -238,25 +238,25 @@ } }, "falseBody": { - "id": 1588, + "id": 1619, "nodeType": "Block", "src": "966:181:7", "statements": [ { "expression": { "argumentTypes": null, - "id": 1586, + "id": 1617, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1578, + "id": 1609, "name": "computedHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1544, + "referencedDeclaration": 1575, "src": "1062:12:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -273,11 +273,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1582, + "id": 1613, "name": "proofElement", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1559, + "referencedDeclaration": 1590, "src": "1104:12:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -286,11 +286,11 @@ }, { "argumentTypes": null, - "id": 1583, + "id": 1614, "name": "computedHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1544, + "referencedDeclaration": 1575, "src": "1118:12:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -311,7 +311,7 @@ ], "expression": { "argumentTypes": null, - "id": 1580, + "id": 1611, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -322,7 +322,7 @@ "typeString": "abi" } }, - "id": 1581, + "id": 1612, "isConstant": false, "isLValue": false, "isPure": true, @@ -336,7 +336,7 @@ "typeString": "function () pure returns (bytes memory)" } }, - "id": 1584, + "id": 1615, "isConstant": false, "isLValue": false, "isPure": false, @@ -359,7 +359,7 @@ "typeString": "bytes memory" } ], - "id": 1579, + "id": 1610, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -370,7 +370,7 @@ "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1585, + "id": 1616, "isConstant": false, "isLValue": false, "isPure": false, @@ -391,35 +391,35 @@ "typeString": "bytes32" } }, - "id": 1587, + "id": 1618, "nodeType": "ExpressionStatement", "src": "1062:70:7" } ] }, - "id": 1589, + "id": 1620, "nodeType": "IfStatement", "src": "745:402:7", "trueBody": { - "id": 1577, + "id": 1608, "nodeType": "Block", "src": "779:181:7", "statements": [ { "expression": { "argumentTypes": null, - "id": 1575, + "id": 1606, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1567, + "id": 1598, "name": "computedHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1544, + "referencedDeclaration": 1575, "src": "875:12:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -436,11 +436,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1571, + "id": 1602, "name": "computedHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1544, + "referencedDeclaration": 1575, "src": "917:12:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -449,11 +449,11 @@ }, { "argumentTypes": null, - "id": 1572, + "id": 1603, "name": "proofElement", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1559, + "referencedDeclaration": 1590, "src": "931:12:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -474,7 +474,7 @@ ], "expression": { "argumentTypes": null, - "id": 1569, + "id": 1600, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -485,7 +485,7 @@ "typeString": "abi" } }, - "id": 1570, + "id": 1601, "isConstant": false, "isLValue": false, "isPure": true, @@ -499,7 +499,7 @@ "typeString": "function () pure returns (bytes memory)" } }, - "id": 1573, + "id": 1604, "isConstant": false, "isLValue": false, "isPure": false, @@ -522,7 +522,7 @@ "typeString": "bytes memory" } ], - "id": 1568, + "id": 1599, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -533,7 +533,7 @@ "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1574, + "id": 1605, "isConstant": false, "isLValue": false, "isPure": false, @@ -554,7 +554,7 @@ "typeString": "bytes32" } }, - "id": 1576, + "id": 1607, "nodeType": "ExpressionStatement", "src": "875:70:7" } @@ -569,18 +569,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1554, + "id": 1585, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1551, + "id": 1582, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1548, + "referencedDeclaration": 1579, "src": "662:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -593,18 +593,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1552, + "id": 1583, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1534, + "referencedDeclaration": 1565, "src": "666:5:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 1553, + "id": 1584, "isConstant": false, "isLValue": false, "isPure": false, @@ -624,20 +624,20 @@ "typeString": "bool" } }, - "id": 1591, + "id": 1622, "initializationExpression": { "assignments": [ - 1548 + 1579 ], "declarations": [ { "constant": false, - "id": 1548, + "id": 1579, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1591, + "scope": 1622, "src": "647:9:7", "stateVariable": false, "storageLocation": "default", @@ -646,7 +646,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1547, + "id": 1578, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "647:7:7", @@ -659,11 +659,11 @@ "visibility": "internal" } ], - "id": 1550, + "id": 1581, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1549, + "id": 1580, "isConstant": false, "isLValue": false, "isPure": true, @@ -684,7 +684,7 @@ "loopExpression": { "expression": { "argumentTypes": null, - "id": 1556, + "id": 1587, "isConstant": false, "isLValue": false, "isPure": false, @@ -695,11 +695,11 @@ "src": "680:3:7", "subExpression": { "argumentTypes": null, - "id": 1555, + "id": 1586, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1548, + "referencedDeclaration": 1579, "src": "680:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -711,7 +711,7 @@ "typeString": "uint256" } }, - "id": 1557, + "id": 1588, "nodeType": "ExpressionStatement", "src": "680:3:7" }, @@ -725,18 +725,18 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 1594, + "id": 1625, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1592, + "id": 1623, "name": "computedHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1544, + "referencedDeclaration": 1575, "src": "1249:12:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -747,11 +747,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1593, + "id": 1624, "name": "root", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1536, + "referencedDeclaration": 1567, "src": "1265:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -764,20 +764,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 1542, - "id": 1595, + "functionReturnParameters": 1573, + "id": 1626, "nodeType": "Return", "src": "1242:27:7" } ] }, "documentation": { - "id": 1531, + "id": 1562, "nodeType": "StructuredDocumentation", "src": "169:323:7", "text": " @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree\n defined by `root`. For this, a `proof` must be provided, containing\n sibling hashes on the branch from the leaf to the root of the tree. Each\n pair of leaves and each pair of pre-images are assumed to be sorted." }, - "id": 1597, + "id": 1628, "implemented": true, "kind": "function", "modifiers": [], @@ -785,17 +785,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1539, + "id": 1570, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1534, + "id": 1565, "mutability": "mutable", "name": "proof", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1597, + "scope": 1628, "src": "513:22:7", "stateVariable": false, "storageLocation": "memory", @@ -805,7 +805,7 @@ }, "typeName": { "baseType": { - "id": 1532, + "id": 1563, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "513:7:7", @@ -814,7 +814,7 @@ "typeString": "bytes32" } }, - "id": 1533, + "id": 1564, "length": null, "nodeType": "ArrayTypeName", "src": "513:9:7", @@ -828,12 +828,12 @@ }, { "constant": false, - "id": 1536, + "id": 1567, "mutability": "mutable", "name": "root", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1597, + "scope": 1628, "src": "537:12:7", "stateVariable": false, "storageLocation": "default", @@ -842,7 +842,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1535, + "id": 1566, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "537:7:7", @@ -856,12 +856,12 @@ }, { "constant": false, - "id": 1538, + "id": 1569, "mutability": "mutable", "name": "leaf", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1597, + "scope": 1628, "src": "551:12:7", "stateVariable": false, "storageLocation": "default", @@ -870,7 +870,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1537, + "id": 1568, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "551:7:7", @@ -886,17 +886,17 @@ "src": "512:52:7" }, "returnParameters": { - "id": 1542, + "id": 1573, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1541, + "id": 1572, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1597, + "scope": 1628, "src": "588:4:7", "stateVariable": false, "storageLocation": "default", @@ -905,7 +905,7 @@ "typeString": "bool" }, "typeName": { - "id": 1540, + "id": 1571, "name": "bool", "nodeType": "ElementaryTypeName", "src": "588:4:7", @@ -920,14 +920,14 @@ ], "src": "587:6:7" }, - "scope": 1598, + "scope": 1629, "src": "497:779:7", "stateMutability": "pure", "virtual": false, "visibility": "internal" } ], - "scope": 1599, + "scope": 1630, "src": "143:1135:7" } ], @@ -937,15 +937,15 @@ "absolutePath": "@openzeppelin/contracts/cryptography/MerkleProof.sol", "exportedSymbols": { "MerkleProof": [ - 1598 + 1629 ] }, - "id": 1599, + "id": 1630, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1529, + "id": 1560, "literals": [ "solidity", "^", @@ -961,38 +961,38 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 1530, + "id": 1561, "nodeType": "StructuredDocumentation", "src": "58:84:7", "text": " @dev These functions deal with verification of Merkle trees (hash trees)," }, "fullyImplemented": true, - "id": 1598, + "id": 1629, "linearizedBaseContracts": [ - 1598 + 1629 ], "name": "MerkleProof", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1596, + "id": 1627, "nodeType": "Block", "src": "594:682:7", "statements": [ { "assignments": [ - 1544 + 1575 ], "declarations": [ { "constant": false, - "id": 1544, + "id": 1575, "mutability": "mutable", "name": "computedHash", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1596, + "scope": 1627, "src": "604:20:7", "stateVariable": false, "storageLocation": "default", @@ -1001,7 +1001,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1543, + "id": 1574, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "604:7:7", @@ -1014,14 +1014,14 @@ "visibility": "internal" } ], - "id": 1546, + "id": 1577, "initialValue": { "argumentTypes": null, - "id": 1545, + "id": 1576, "name": "leaf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1538, + "referencedDeclaration": 1569, "src": "627:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1033,23 +1033,23 @@ }, { "body": { - "id": 1590, + "id": 1621, "nodeType": "Block", "src": "685:472:7", "statements": [ { "assignments": [ - 1559 + 1590 ], "declarations": [ { "constant": false, - "id": 1559, + "id": 1590, "mutability": "mutable", "name": "proofElement", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1590, + "scope": 1621, "src": "699:20:7", "stateVariable": false, "storageLocation": "default", @@ -1058,7 +1058,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1558, + "id": 1589, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "699:7:7", @@ -1071,30 +1071,30 @@ "visibility": "internal" } ], - "id": 1563, + "id": 1594, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1560, + "id": 1591, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1534, + "referencedDeclaration": 1565, "src": "722:5:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 1562, + "id": 1593, "indexExpression": { "argumentTypes": null, - "id": 1561, + "id": 1592, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1548, + "referencedDeclaration": 1579, "src": "728:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1122,18 +1122,18 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 1566, + "id": 1597, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1564, + "id": 1595, "name": "computedHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1544, + "referencedDeclaration": 1575, "src": "749:12:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1144,11 +1144,11 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1565, + "id": 1596, "name": "proofElement", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1559, + "referencedDeclaration": 1590, "src": "765:12:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1162,25 +1162,25 @@ } }, "falseBody": { - "id": 1588, + "id": 1619, "nodeType": "Block", "src": "966:181:7", "statements": [ { "expression": { "argumentTypes": null, - "id": 1586, + "id": 1617, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1578, + "id": 1609, "name": "computedHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1544, + "referencedDeclaration": 1575, "src": "1062:12:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1197,11 +1197,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1582, + "id": 1613, "name": "proofElement", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1559, + "referencedDeclaration": 1590, "src": "1104:12:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1210,11 +1210,11 @@ }, { "argumentTypes": null, - "id": 1583, + "id": 1614, "name": "computedHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1544, + "referencedDeclaration": 1575, "src": "1118:12:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1235,7 +1235,7 @@ ], "expression": { "argumentTypes": null, - "id": 1580, + "id": 1611, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1246,7 +1246,7 @@ "typeString": "abi" } }, - "id": 1581, + "id": 1612, "isConstant": false, "isLValue": false, "isPure": true, @@ -1260,7 +1260,7 @@ "typeString": "function () pure returns (bytes memory)" } }, - "id": 1584, + "id": 1615, "isConstant": false, "isLValue": false, "isPure": false, @@ -1283,7 +1283,7 @@ "typeString": "bytes memory" } ], - "id": 1579, + "id": 1610, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1294,7 +1294,7 @@ "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1585, + "id": 1616, "isConstant": false, "isLValue": false, "isPure": false, @@ -1315,35 +1315,35 @@ "typeString": "bytes32" } }, - "id": 1587, + "id": 1618, "nodeType": "ExpressionStatement", "src": "1062:70:7" } ] }, - "id": 1589, + "id": 1620, "nodeType": "IfStatement", "src": "745:402:7", "trueBody": { - "id": 1577, + "id": 1608, "nodeType": "Block", "src": "779:181:7", "statements": [ { "expression": { "argumentTypes": null, - "id": 1575, + "id": 1606, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1567, + "id": 1598, "name": "computedHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1544, + "referencedDeclaration": 1575, "src": "875:12:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1360,11 +1360,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1571, + "id": 1602, "name": "computedHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1544, + "referencedDeclaration": 1575, "src": "917:12:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1373,11 +1373,11 @@ }, { "argumentTypes": null, - "id": 1572, + "id": 1603, "name": "proofElement", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1559, + "referencedDeclaration": 1590, "src": "931:12:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1398,7 +1398,7 @@ ], "expression": { "argumentTypes": null, - "id": 1569, + "id": 1600, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1409,7 +1409,7 @@ "typeString": "abi" } }, - "id": 1570, + "id": 1601, "isConstant": false, "isLValue": false, "isPure": true, @@ -1423,7 +1423,7 @@ "typeString": "function () pure returns (bytes memory)" } }, - "id": 1573, + "id": 1604, "isConstant": false, "isLValue": false, "isPure": false, @@ -1446,7 +1446,7 @@ "typeString": "bytes memory" } ], - "id": 1568, + "id": 1599, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1457,7 +1457,7 @@ "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1574, + "id": 1605, "isConstant": false, "isLValue": false, "isPure": false, @@ -1478,7 +1478,7 @@ "typeString": "bytes32" } }, - "id": 1576, + "id": 1607, "nodeType": "ExpressionStatement", "src": "875:70:7" } @@ -1493,18 +1493,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1554, + "id": 1585, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1551, + "id": 1582, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1548, + "referencedDeclaration": 1579, "src": "662:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1517,18 +1517,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1552, + "id": 1583, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1534, + "referencedDeclaration": 1565, "src": "666:5:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 1553, + "id": 1584, "isConstant": false, "isLValue": false, "isPure": false, @@ -1548,20 +1548,20 @@ "typeString": "bool" } }, - "id": 1591, + "id": 1622, "initializationExpression": { "assignments": [ - 1548 + 1579 ], "declarations": [ { "constant": false, - "id": 1548, + "id": 1579, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1591, + "scope": 1622, "src": "647:9:7", "stateVariable": false, "storageLocation": "default", @@ -1570,7 +1570,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1547, + "id": 1578, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "647:7:7", @@ -1583,11 +1583,11 @@ "visibility": "internal" } ], - "id": 1550, + "id": 1581, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1549, + "id": 1580, "isConstant": false, "isLValue": false, "isPure": true, @@ -1608,7 +1608,7 @@ "loopExpression": { "expression": { "argumentTypes": null, - "id": 1556, + "id": 1587, "isConstant": false, "isLValue": false, "isPure": false, @@ -1619,11 +1619,11 @@ "src": "680:3:7", "subExpression": { "argumentTypes": null, - "id": 1555, + "id": 1586, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1548, + "referencedDeclaration": 1579, "src": "680:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1635,7 +1635,7 @@ "typeString": "uint256" } }, - "id": 1557, + "id": 1588, "nodeType": "ExpressionStatement", "src": "680:3:7" }, @@ -1649,18 +1649,18 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 1594, + "id": 1625, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1592, + "id": 1623, "name": "computedHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1544, + "referencedDeclaration": 1575, "src": "1249:12:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1671,11 +1671,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1593, + "id": 1624, "name": "root", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1536, + "referencedDeclaration": 1567, "src": "1265:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1688,20 +1688,20 @@ "typeString": "bool" } }, - "functionReturnParameters": 1542, - "id": 1595, + "functionReturnParameters": 1573, + "id": 1626, "nodeType": "Return", "src": "1242:27:7" } ] }, "documentation": { - "id": 1531, + "id": 1562, "nodeType": "StructuredDocumentation", "src": "169:323:7", "text": " @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree\n defined by `root`. For this, a `proof` must be provided, containing\n sibling hashes on the branch from the leaf to the root of the tree. Each\n pair of leaves and each pair of pre-images are assumed to be sorted." }, - "id": 1597, + "id": 1628, "implemented": true, "kind": "function", "modifiers": [], @@ -1709,17 +1709,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1539, + "id": 1570, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1534, + "id": 1565, "mutability": "mutable", "name": "proof", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1597, + "scope": 1628, "src": "513:22:7", "stateVariable": false, "storageLocation": "memory", @@ -1729,7 +1729,7 @@ }, "typeName": { "baseType": { - "id": 1532, + "id": 1563, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "513:7:7", @@ -1738,7 +1738,7 @@ "typeString": "bytes32" } }, - "id": 1533, + "id": 1564, "length": null, "nodeType": "ArrayTypeName", "src": "513:9:7", @@ -1752,12 +1752,12 @@ }, { "constant": false, - "id": 1536, + "id": 1567, "mutability": "mutable", "name": "root", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1597, + "scope": 1628, "src": "537:12:7", "stateVariable": false, "storageLocation": "default", @@ -1766,7 +1766,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1535, + "id": 1566, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "537:7:7", @@ -1780,12 +1780,12 @@ }, { "constant": false, - "id": 1538, + "id": 1569, "mutability": "mutable", "name": "leaf", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1597, + "scope": 1628, "src": "551:12:7", "stateVariable": false, "storageLocation": "default", @@ -1794,7 +1794,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 1537, + "id": 1568, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "551:7:7", @@ -1810,17 +1810,17 @@ "src": "512:52:7" }, "returnParameters": { - "id": 1542, + "id": 1573, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1541, + "id": 1572, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1597, + "scope": 1628, "src": "588:4:7", "stateVariable": false, "storageLocation": "default", @@ -1829,7 +1829,7 @@ "typeString": "bool" }, "typeName": { - "id": 1540, + "id": 1571, "name": "bool", "nodeType": "ElementaryTypeName", "src": "588:4:7", @@ -1844,14 +1844,14 @@ ], "src": "587:6:7" }, - "scope": 1598, + "scope": 1629, "src": "497:779:7", "stateMutability": "pure", "virtual": false, "visibility": "internal" } ], - "scope": 1599, + "scope": 1630, "src": "143:1135:7" } ], @@ -1859,16 +1859,20 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:05.967Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.657Z", "devdoc": { "details": "These functions deal with verification of Merkle trees (hash trees),", - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/Migrations.json b/abi/Migrations.json index 1dbab46..01dc4cf 100644 --- a/abi/Migrations.json +++ b/abi/Migrations.json @@ -48,31 +48,31 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"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\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/sencha/maker-badges/contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/sencha/maker-badges/contracts/Migrations.sol\":{\"keccak256\":\"0x58942ed34ae838d1df15d84356a3a4eb97e4b20be4fc26c8be34c9e7bd734f21\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d7780399873ae5bf03be2c94059a43934e3a000a9acf1f8a3c46b0a1669e24a4\",\"dweb:/ipfs/QmRYbKuEq4ZcRxmmGuZiPmngRJFkHoJtpGimUUPGHP1MEH\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061019d806100606000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610064578063fdacd576146100ae575b600080fd5b61004e6100dc565b6040518082815260200191505060405180910390f35b61006c6100e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100da600480360360208110156100c457600080fd5b8101908080359060200190929190505050610107565b005b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561016457806001819055505b5056fea2646970667358221220c4137f5c889c097f045868e17fcd7f2d248ce393bdd07aba55c578f6d78df06c64736f6c634300060a0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610064578063fdacd576146100ae575b600080fd5b61004e6100dc565b6040518082815260200191505060405180910390f35b61006c6100e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100da600480360360208110156100c457600080fd5b8101908080359060200190929190505050610107565b005b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561016457806001819055505b5056fea2646970667358221220c4137f5c889c097f045868e17fcd7f2d248ce393bdd07aba55c578f6d78df06c64736f6c634300060a0033", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"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\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/sencha/maker-badges/contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/sencha/maker-badges/contracts/Migrations.sol\":{\"keccak256\":\"0xa2130fc088b8397feeaf1141b0c8d5a650066d0ebb8d16a68bb0444c515446ad\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2d4d80b86597e9b6150b49597beae58fcd5810551595e12866aa5bd147df46b\",\"dweb:/ipfs/QmYvuNAGM2XxtZCSsYkm38XFVgBgVoMuw8ajpbVMJp2KzA\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061019d806100606000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610064578063fdacd576146100ae575b600080fd5b61004e6100dc565b6040518082815260200191505060405180910390f35b61006c6100e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100da600480360360208110156100c457600080fd5b8101908080359060200190929190505050610107565b005b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561016457806001819055505b5056fea26469706673582212203ecd05f0552a0d1ae9052efc8a958fc5a13ee712aec4ff2786afec910dff23ae64736f6c634300060b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610064578063fdacd576146100ae575b600080fd5b61004e6100dc565b6040518082815260200191505060405180910390f35b61006c6100e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100da600480360360208110156100c457600080fd5b8101908080359060200190929190505050610107565b005b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561016457806001819055505b5056fea26469706673582212203ecd05f0552a0d1ae9052efc8a958fc5a13ee712aec4ff2786afec910dff23ae64736f6c634300060b0033", "immutableReferences": {}, "sourceMap": "62:311:3:-:0;;;151:50;;;;;;;;;;186:10;178:5;;:18;;;;;;;;;;;;;;;;;;62:311;;;;;;", "deployedSourceMap": "62:311:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;110:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;86:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;268:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;110:36;;;;:::o;86:20::-;;;;;;;;;;;;;:::o;268:103::-;251:5;;;;;;;;;;;237:19;;:10;:19;;;233:26;;;357:9:::1;330:24;:36;;;;233:26:::0;268:103;:::o", - "source": "/// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.6.10;\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", + "source": "/// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.6.11;\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", "sourcePath": "/home/sencha/maker-badges/contracts/Migrations.sol", "ast": { "absolutePath": "/home/sencha/maker-badges/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ - 1112 + 1143 ] }, - "id": 1113, + "id": 1144, "license": "GPL-3.0", "nodeType": "SourceUnit", "nodes": [ { - "id": 1077, + "id": 1108, "literals": [ "solidity", "0.6", - ".10" + ".11" ], "nodeType": "PragmaDirective", "src": "37:23:3" @@ -84,9 +84,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1112, + "id": 1143, "linearizedBaseContracts": [ - 1112 + 1143 ], "name": "Migrations", "nodeType": "ContractDefinition", @@ -94,12 +94,12 @@ { "constant": false, "functionSelector": "8da5cb5b", - "id": 1079, + "id": 1110, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1112, + "scope": 1143, "src": "86:20:3", "stateVariable": true, "storageLocation": "default", @@ -108,7 +108,7 @@ "typeString": "address" }, "typeName": { - "id": 1078, + "id": 1109, "name": "address", "nodeType": "ElementaryTypeName", "src": "86:7:3", @@ -124,12 +124,12 @@ { "constant": false, "functionSelector": "445df0ac", - "id": 1081, + "id": 1112, "mutability": "mutable", "name": "last_completed_migration", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1112, + "scope": 1143, "src": "110:36:3", "stateVariable": true, "storageLocation": "default", @@ -138,7 +138,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1080, + "id": 1111, "name": "uint", "nodeType": "ElementaryTypeName", "src": "110:4:3", @@ -152,25 +152,25 @@ }, { "body": { - "id": 1089, + "id": 1120, "nodeType": "Block", "src": "172:29:3", "statements": [ { "expression": { "argumentTypes": null, - "id": 1087, + "id": 1118, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1084, + "id": 1115, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1079, + "referencedDeclaration": 1110, "src": "178:5:3", "typeDescriptions": { "typeIdentifier": "t_address", @@ -183,7 +183,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1085, + "id": 1116, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -194,7 +194,7 @@ "typeString": "msg" } }, - "id": 1086, + "id": 1117, "isConstant": false, "isLValue": false, "isPure": false, @@ -214,14 +214,14 @@ "typeString": "address" } }, - "id": 1088, + "id": 1119, "nodeType": "ExpressionStatement", "src": "178:18:3" } ] }, "documentation": null, - "id": 1090, + "id": 1121, "implemented": true, "kind": "constructor", "modifiers": [], @@ -229,18 +229,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1082, + "id": 1113, "nodeType": "ParameterList", "parameters": [], "src": "162:2:3" }, "returnParameters": { - "id": 1083, + "id": 1114, "nodeType": "ParameterList", "parameters": [], "src": "172:0:3" }, - "scope": 1112, + "scope": 1143, "src": "151:50:3", "stateMutability": "nonpayable", "virtual": false, @@ -248,7 +248,7 @@ }, { "body": { - "id": 1098, + "id": 1129, "nodeType": "Block", "src": "227:37:3", "statements": [ @@ -259,7 +259,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1095, + "id": 1126, "isConstant": false, "isLValue": false, "isPure": false, @@ -268,7 +268,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1092, + "id": 1123, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -279,7 +279,7 @@ "typeString": "msg" } }, - "id": 1093, + "id": 1124, "isConstant": false, "isLValue": false, "isPure": false, @@ -297,11 +297,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1094, + "id": 1125, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1079, + "referencedDeclaration": 1110, "src": "251:5:3", "typeDescriptions": { "typeIdentifier": "t_address", @@ -315,11 +315,11 @@ } }, "falseBody": null, - "id": 1097, + "id": 1128, "nodeType": "IfStatement", "src": "233:26:3", "trueBody": { - "id": 1096, + "id": 1127, "nodeType": "PlaceholderStatement", "src": "258:1:3" } @@ -327,12 +327,12 @@ ] }, "documentation": null, - "id": 1099, + "id": 1130, "name": "restricted", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { - "id": 1091, + "id": 1122, "nodeType": "ParameterList", "parameters": [], "src": "224:2:3" @@ -343,25 +343,25 @@ }, { "body": { - "id": 1110, + "id": 1141, "nodeType": "Block", "src": "324:47:3", "statements": [ { "expression": { "argumentTypes": null, - "id": 1108, + "id": 1139, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1106, + "id": 1137, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1081, + "referencedDeclaration": 1112, "src": "330:24:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -372,11 +372,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1107, + "id": 1138, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1101, + "referencedDeclaration": 1132, "src": "357:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -389,7 +389,7 @@ "typeString": "uint256" } }, - "id": 1109, + "id": 1140, "nodeType": "ExpressionStatement", "src": "330:36:3" } @@ -397,20 +397,20 @@ }, "documentation": null, "functionSelector": "fdacd576", - "id": 1111, + "id": 1142, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1104, + "id": 1135, "modifierName": { "argumentTypes": null, - "id": 1103, + "id": 1134, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1099, + "referencedDeclaration": 1130, "src": "313:10:3", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -425,17 +425,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1102, + "id": 1133, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1101, + "id": 1132, "mutability": "mutable", "name": "completed", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1111, + "scope": 1142, "src": "290:14:3", "stateVariable": false, "storageLocation": "default", @@ -444,7 +444,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1100, + "id": 1131, "name": "uint", "nodeType": "ElementaryTypeName", "src": "290:4:3", @@ -460,19 +460,19 @@ "src": "289:16:3" }, "returnParameters": { - "id": 1105, + "id": 1136, "nodeType": "ParameterList", "parameters": [], "src": "324:0:3" }, - "scope": 1112, + "scope": 1143, "src": "268:103:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], - "scope": 1113, + "scope": 1144, "src": "62:311:3" } ], @@ -482,19 +482,19 @@ "absolutePath": "/home/sencha/maker-badges/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ - 1112 + 1143 ] }, - "id": 1113, + "id": 1144, "license": "GPL-3.0", "nodeType": "SourceUnit", "nodes": [ { - "id": 1077, + "id": 1108, "literals": [ "solidity", "0.6", - ".10" + ".11" ], "nodeType": "PragmaDirective", "src": "37:23:3" @@ -506,9 +506,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1112, + "id": 1143, "linearizedBaseContracts": [ - 1112 + 1143 ], "name": "Migrations", "nodeType": "ContractDefinition", @@ -516,12 +516,12 @@ { "constant": false, "functionSelector": "8da5cb5b", - "id": 1079, + "id": 1110, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1112, + "scope": 1143, "src": "86:20:3", "stateVariable": true, "storageLocation": "default", @@ -530,7 +530,7 @@ "typeString": "address" }, "typeName": { - "id": 1078, + "id": 1109, "name": "address", "nodeType": "ElementaryTypeName", "src": "86:7:3", @@ -546,12 +546,12 @@ { "constant": false, "functionSelector": "445df0ac", - "id": 1081, + "id": 1112, "mutability": "mutable", "name": "last_completed_migration", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1112, + "scope": 1143, "src": "110:36:3", "stateVariable": true, "storageLocation": "default", @@ -560,7 +560,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1080, + "id": 1111, "name": "uint", "nodeType": "ElementaryTypeName", "src": "110:4:3", @@ -574,25 +574,25 @@ }, { "body": { - "id": 1089, + "id": 1120, "nodeType": "Block", "src": "172:29:3", "statements": [ { "expression": { "argumentTypes": null, - "id": 1087, + "id": 1118, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1084, + "id": 1115, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1079, + "referencedDeclaration": 1110, "src": "178:5:3", "typeDescriptions": { "typeIdentifier": "t_address", @@ -605,7 +605,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1085, + "id": 1116, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -616,7 +616,7 @@ "typeString": "msg" } }, - "id": 1086, + "id": 1117, "isConstant": false, "isLValue": false, "isPure": false, @@ -636,14 +636,14 @@ "typeString": "address" } }, - "id": 1088, + "id": 1119, "nodeType": "ExpressionStatement", "src": "178:18:3" } ] }, "documentation": null, - "id": 1090, + "id": 1121, "implemented": true, "kind": "constructor", "modifiers": [], @@ -651,18 +651,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1082, + "id": 1113, "nodeType": "ParameterList", "parameters": [], "src": "162:2:3" }, "returnParameters": { - "id": 1083, + "id": 1114, "nodeType": "ParameterList", "parameters": [], "src": "172:0:3" }, - "scope": 1112, + "scope": 1143, "src": "151:50:3", "stateMutability": "nonpayable", "virtual": false, @@ -670,7 +670,7 @@ }, { "body": { - "id": 1098, + "id": 1129, "nodeType": "Block", "src": "227:37:3", "statements": [ @@ -681,7 +681,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1095, + "id": 1126, "isConstant": false, "isLValue": false, "isPure": false, @@ -690,7 +690,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1092, + "id": 1123, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -701,7 +701,7 @@ "typeString": "msg" } }, - "id": 1093, + "id": 1124, "isConstant": false, "isLValue": false, "isPure": false, @@ -719,11 +719,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1094, + "id": 1125, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1079, + "referencedDeclaration": 1110, "src": "251:5:3", "typeDescriptions": { "typeIdentifier": "t_address", @@ -737,11 +737,11 @@ } }, "falseBody": null, - "id": 1097, + "id": 1128, "nodeType": "IfStatement", "src": "233:26:3", "trueBody": { - "id": 1096, + "id": 1127, "nodeType": "PlaceholderStatement", "src": "258:1:3" } @@ -749,12 +749,12 @@ ] }, "documentation": null, - "id": 1099, + "id": 1130, "name": "restricted", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { - "id": 1091, + "id": 1122, "nodeType": "ParameterList", "parameters": [], "src": "224:2:3" @@ -765,25 +765,25 @@ }, { "body": { - "id": 1110, + "id": 1141, "nodeType": "Block", "src": "324:47:3", "statements": [ { "expression": { "argumentTypes": null, - "id": 1108, + "id": 1139, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1106, + "id": 1137, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1081, + "referencedDeclaration": 1112, "src": "330:24:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -794,11 +794,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1107, + "id": 1138, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1101, + "referencedDeclaration": 1132, "src": "357:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -811,7 +811,7 @@ "typeString": "uint256" } }, - "id": 1109, + "id": 1140, "nodeType": "ExpressionStatement", "src": "330:36:3" } @@ -819,20 +819,20 @@ }, "documentation": null, "functionSelector": "fdacd576", - "id": 1111, + "id": 1142, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1104, + "id": 1135, "modifierName": { "argumentTypes": null, - "id": 1103, + "id": 1134, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1099, + "referencedDeclaration": 1130, "src": "313:10:3", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -847,17 +847,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1102, + "id": 1133, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1101, + "id": 1132, "mutability": "mutable", "name": "completed", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1111, + "scope": 1142, "src": "290:14:3", "stateVariable": false, "storageLocation": "default", @@ -866,7 +866,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1100, + "id": 1131, "name": "uint", "nodeType": "ElementaryTypeName", "src": "290:4:3", @@ -882,19 +882,19 @@ "src": "289:16:3" }, "returnParameters": { - "id": 1105, + "id": 1136, "nodeType": "ParameterList", "parameters": [], "src": "324:0:3" }, - "scope": 1112, + "scope": 1143, "src": "268:103:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], - "scope": 1113, + "scope": 1144, "src": "62:311:3" } ], @@ -902,23 +902,27 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": { "42": { "events": {}, "links": {}, - "address": "0x9700bC6B0753950fa389BaD1Dc777B905354acC9", - "transactionHash": "0xed606dbc8ef0d5a20e7310e2b4f20d4d73db8c73a25a83e9a236c3f2b4382922" + "address": "0x32E96fa4556532BcF1e021E217DF04a79846Be8b", + "transactionHash": "0xf23f238e7a3775d6b7f7a647174a8a9e9ae3fb21576e660a90806e37049cd555" } }, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-30T11:28:52.545Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:57:08.808Z", "networkType": "ethereum", "devdoc": { - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/Ownable.json b/abi/Ownable.json index 3b69f32..0381811 100644 --- a/abi/Ownable.json +++ b/abi/Ownable.json @@ -54,7 +54,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, @@ -66,15 +66,15 @@ "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", "exportedSymbols": { "Ownable": [ - 1527 + 1558 ] }, - "id": 1528, + "id": 1559, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1420, + "id": 1451, "literals": [ "solidity", "^", @@ -87,10 +87,10 @@ { "absolutePath": "@openzeppelin/contracts/GSN/Context.sol", "file": "../GSN/Context.sol", - "id": 1421, + "id": 1452, "nodeType": "ImportDirective", - "scope": 1528, - "sourceUnit": 1136, + "scope": 1559, + "sourceUnit": 1167, "src": "58:28:6", "symbolAliases": [], "unitAlias": "" @@ -102,48 +102,48 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1423, + "id": 1454, "name": "Context", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1135, + "referencedDeclaration": 1166, "src": "602:7:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$1135", + "typeIdentifier": "t_contract$_Context_$1166", "typeString": "contract Context" } }, - "id": 1424, + "id": 1455, "nodeType": "InheritanceSpecifier", "src": "602:7:6" } ], "contractDependencies": [ - 1135 + 1166 ], "contractKind": "contract", "documentation": { - "id": 1422, + "id": 1453, "nodeType": "StructuredDocumentation", "src": "87:494:6", "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." }, "fullyImplemented": true, - "id": 1527, + "id": 1558, "linearizedBaseContracts": [ - 1527, - 1135 + 1558, + 1166 ], "name": "Ownable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1426, + "id": 1457, "mutability": "mutable", "name": "_owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1527, + "scope": 1558, "src": "616:22:6", "stateVariable": true, "storageLocation": "default", @@ -152,7 +152,7 @@ "typeString": "address" }, "typeName": { - "id": 1425, + "id": 1456, "name": "address", "nodeType": "ElementaryTypeName", "src": "616:7:6", @@ -168,22 +168,22 @@ { "anonymous": false, "documentation": null, - "id": 1432, + "id": 1463, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 1431, + "id": 1462, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1428, + "id": 1459, "indexed": true, "mutability": "mutable", "name": "previousOwner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1432, + "scope": 1463, "src": "672:29:6", "stateVariable": false, "storageLocation": "default", @@ -192,7 +192,7 @@ "typeString": "address" }, "typeName": { - "id": 1427, + "id": 1458, "name": "address", "nodeType": "ElementaryTypeName", "src": "672:7:6", @@ -207,13 +207,13 @@ }, { "constant": false, - "id": 1430, + "id": 1461, "indexed": true, "mutability": "mutable", "name": "newOwner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1432, + "scope": 1463, "src": "703:24:6", "stateVariable": false, "storageLocation": "default", @@ -222,7 +222,7 @@ "typeString": "address" }, "typeName": { - "id": 1429, + "id": 1460, "name": "address", "nodeType": "ElementaryTypeName", "src": "703:7:6", @@ -242,23 +242,23 @@ }, { "body": { - "id": 1453, + "id": 1484, "nodeType": "Block", "src": "855:135:6", "statements": [ { "assignments": [ - 1437 + 1468 ], "declarations": [ { "constant": false, - "id": 1437, + "id": 1468, "mutability": "mutable", "name": "msgSender", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1453, + "scope": 1484, "src": "865:17:6", "stateVariable": false, "storageLocation": "default", @@ -267,7 +267,7 @@ "typeString": "address" }, "typeName": { - "id": 1436, + "id": 1467, "name": "address", "nodeType": "ElementaryTypeName", "src": "865:7:6", @@ -281,24 +281,24 @@ "visibility": "internal" } ], - "id": 1440, + "id": 1471, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 1438, + "id": 1469, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "885:10:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1439, + "id": 1470, "isConstant": false, "isLValue": false, "isPure": false, @@ -319,18 +319,18 @@ { "expression": { "argumentTypes": null, - "id": 1443, + "id": 1474, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1441, + "id": 1472, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1426, + "referencedDeclaration": 1457, "src": "907:6:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -341,11 +341,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1442, + "id": 1473, "name": "msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1437, + "referencedDeclaration": 1468, "src": "916:9:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -358,7 +358,7 @@ "typeString": "address" } }, - "id": 1444, + "id": 1475, "nodeType": "ExpressionStatement", "src": "907:18:6" }, @@ -372,7 +372,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1448, + "id": 1479, "isConstant": false, "isLValue": false, "isPure": true, @@ -395,7 +395,7 @@ "typeString": "int_const 0" } ], - "id": 1447, + "id": 1478, "isConstant": false, "isLValue": false, "isPure": true, @@ -407,7 +407,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 1446, + "id": 1477, "name": "address", "nodeType": "ElementaryTypeName", "src": "961:7:6", @@ -417,7 +417,7 @@ } } }, - "id": 1449, + "id": 1480, "isConstant": false, "isLValue": false, "isPure": true, @@ -434,11 +434,11 @@ }, { "argumentTypes": null, - "id": 1450, + "id": 1481, "name": "msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1437, + "referencedDeclaration": 1468, "src": "973:9:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -457,18 +457,18 @@ "typeString": "address" } ], - "id": 1445, + "id": 1476, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1432, + "referencedDeclaration": 1463, "src": "940:20:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 1451, + "id": 1482, "isConstant": false, "isLValue": false, "isPure": false, @@ -483,19 +483,19 @@ "typeString": "tuple()" } }, - "id": 1452, + "id": 1483, "nodeType": "EmitStatement", "src": "935:48:6" } ] }, "documentation": { - "id": 1433, + "id": 1464, "nodeType": "StructuredDocumentation", "src": "735:91:6", "text": " @dev Initializes the contract setting the deployer as the initial owner." }, - "id": 1454, + "id": 1485, "implemented": true, "kind": "constructor", "modifiers": [], @@ -503,18 +503,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1434, + "id": 1465, "nodeType": "ParameterList", "parameters": [], "src": "843:2:6" }, "returnParameters": { - "id": 1435, + "id": 1466, "nodeType": "ParameterList", "parameters": [], "src": "855:0:6" }, - "scope": 1527, + "scope": 1558, "src": "831:159:6", "stateMutability": "nonpayable", "virtual": false, @@ -522,39 +522,39 @@ }, { "body": { - "id": 1462, + "id": 1493, "nodeType": "Block", "src": "1113:30:6", "statements": [ { "expression": { "argumentTypes": null, - "id": 1460, + "id": 1491, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1426, + "referencedDeclaration": 1457, "src": "1130:6:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1459, - "id": 1461, + "functionReturnParameters": 1490, + "id": 1492, "nodeType": "Return", "src": "1123:13:6" } ] }, "documentation": { - "id": 1455, + "id": 1486, "nodeType": "StructuredDocumentation", "src": "996:65:6", "text": " @dev Returns the address of the current owner." }, "functionSelector": "8da5cb5b", - "id": 1463, + "id": 1494, "implemented": true, "kind": "function", "modifiers": [], @@ -562,23 +562,23 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1456, + "id": 1487, "nodeType": "ParameterList", "parameters": [], "src": "1080:2:6" }, "returnParameters": { - "id": 1459, + "id": 1490, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1458, + "id": 1489, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1463, + "scope": 1494, "src": "1104:7:6", "stateVariable": false, "storageLocation": "default", @@ -587,7 +587,7 @@ "typeString": "address" }, "typeName": { - "id": 1457, + "id": 1488, "name": "address", "nodeType": "ElementaryTypeName", "src": "1104:7:6", @@ -603,7 +603,7 @@ ], "src": "1103:9:6" }, - "scope": 1527, + "scope": 1558, "src": "1066:77:6", "stateMutability": "view", "virtual": false, @@ -611,7 +611,7 @@ }, { "body": { - "id": 1475, + "id": 1506, "nodeType": "Block", "src": "1252:95:6", "statements": [ @@ -625,18 +625,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1470, + "id": 1501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1467, + "id": 1498, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1426, + "referencedDeclaration": 1457, "src": "1270:6:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -650,18 +650,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1468, + "id": 1499, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "1280:10:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1469, + "id": 1500, "isConstant": false, "isLValue": false, "isPure": false, @@ -685,7 +685,7 @@ { "argumentTypes": null, "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", - "id": 1471, + "id": 1502, "isConstant": false, "isLValue": false, "isPure": true, @@ -712,7 +712,7 @@ "typeString": "literal_string \"Ownable: caller is not the owner\"" } ], - "id": 1466, + "id": 1497, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -726,7 +726,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1472, + "id": 1503, "isConstant": false, "isLValue": false, "isPure": false, @@ -741,29 +741,29 @@ "typeString": "tuple()" } }, - "id": 1473, + "id": 1504, "nodeType": "ExpressionStatement", "src": "1262:67:6" }, { - "id": 1474, + "id": 1505, "nodeType": "PlaceholderStatement", "src": "1339:1:6" } ] }, "documentation": { - "id": 1464, + "id": 1495, "nodeType": "StructuredDocumentation", "src": "1149:77:6", "text": " @dev Throws if called by any account other than the owner." }, - "id": 1476, + "id": 1507, "name": "onlyOwner", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { - "id": 1465, + "id": 1496, "nodeType": "ParameterList", "parameters": [], "src": "1249:2:6" @@ -774,7 +774,7 @@ }, { "body": { - "id": 1497, + "id": 1528, "nodeType": "Block", "src": "1743:91:6", "statements": [ @@ -784,11 +784,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1483, + "id": 1514, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1426, + "referencedDeclaration": 1457, "src": "1779:6:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -801,7 +801,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1486, + "id": 1517, "isConstant": false, "isLValue": false, "isPure": true, @@ -824,7 +824,7 @@ "typeString": "int_const 0" } ], - "id": 1485, + "id": 1516, "isConstant": false, "isLValue": false, "isPure": true, @@ -836,7 +836,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 1484, + "id": 1515, "name": "address", "nodeType": "ElementaryTypeName", "src": "1787:7:6", @@ -846,7 +846,7 @@ } } }, - "id": 1487, + "id": 1518, "isConstant": false, "isLValue": false, "isPure": true, @@ -873,18 +873,18 @@ "typeString": "address payable" } ], - "id": 1482, + "id": 1513, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1432, + "referencedDeclaration": 1463, "src": "1758:20:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 1488, + "id": 1519, "isConstant": false, "isLValue": false, "isPure": false, @@ -899,25 +899,25 @@ "typeString": "tuple()" } }, - "id": 1489, + "id": 1520, "nodeType": "EmitStatement", "src": "1753:45:6" }, { "expression": { "argumentTypes": null, - "id": 1495, + "id": 1526, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1490, + "id": 1521, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1426, + "referencedDeclaration": 1457, "src": "1808:6:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -932,7 +932,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1493, + "id": 1524, "isConstant": false, "isLValue": false, "isPure": true, @@ -955,7 +955,7 @@ "typeString": "int_const 0" } ], - "id": 1492, + "id": 1523, "isConstant": false, "isLValue": false, "isPure": true, @@ -967,7 +967,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 1491, + "id": 1522, "name": "address", "nodeType": "ElementaryTypeName", "src": "1817:7:6", @@ -977,7 +977,7 @@ } } }, - "id": 1494, + "id": 1525, "isConstant": false, "isLValue": false, "isPure": true, @@ -998,33 +998,33 @@ "typeString": "address" } }, - "id": 1496, + "id": 1527, "nodeType": "ExpressionStatement", "src": "1808:19:6" } ] }, "documentation": { - "id": 1477, + "id": 1508, "nodeType": "StructuredDocumentation", "src": "1353:331:6", "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner." }, "functionSelector": "715018a6", - "id": 1498, + "id": 1529, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1480, + "id": 1511, "modifierName": { "argumentTypes": null, - "id": 1479, + "id": 1510, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, + "referencedDeclaration": 1507, "src": "1733:9:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -1039,18 +1039,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1478, + "id": 1509, "nodeType": "ParameterList", "parameters": [], "src": "1715:2:6" }, "returnParameters": { - "id": 1481, + "id": 1512, "nodeType": "ParameterList", "parameters": [], "src": "1743:0:6" }, - "scope": 1527, + "scope": 1558, "src": "1689:145:6", "stateMutability": "nonpayable", "virtual": true, @@ -1058,7 +1058,7 @@ }, { "body": { - "id": 1525, + "id": 1556, "nodeType": "Block", "src": "2053:170:6", "statements": [ @@ -1072,18 +1072,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1512, + "id": 1543, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1507, + "id": 1538, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1501, + "referencedDeclaration": 1532, "src": "2071:8:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1098,7 +1098,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1510, + "id": 1541, "isConstant": false, "isLValue": false, "isPure": true, @@ -1121,7 +1121,7 @@ "typeString": "int_const 0" } ], - "id": 1509, + "id": 1540, "isConstant": false, "isLValue": false, "isPure": true, @@ -1133,7 +1133,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 1508, + "id": 1539, "name": "address", "nodeType": "ElementaryTypeName", "src": "2083:7:6", @@ -1143,7 +1143,7 @@ } } }, - "id": 1511, + "id": 1542, "isConstant": false, "isLValue": false, "isPure": true, @@ -1167,7 +1167,7 @@ { "argumentTypes": null, "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", - "id": 1513, + "id": 1544, "isConstant": false, "isLValue": false, "isPure": true, @@ -1194,7 +1194,7 @@ "typeString": "literal_string \"Ownable: new owner is the zero address\"" } ], - "id": 1506, + "id": 1537, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1208,7 +1208,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1514, + "id": 1545, "isConstant": false, "isLValue": false, "isPure": false, @@ -1223,7 +1223,7 @@ "typeString": "tuple()" } }, - "id": 1515, + "id": 1546, "nodeType": "ExpressionStatement", "src": "2063:73:6" }, @@ -1233,11 +1233,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1517, + "id": 1548, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1426, + "referencedDeclaration": 1457, "src": "2172:6:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1246,11 +1246,11 @@ }, { "argumentTypes": null, - "id": 1518, + "id": 1549, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1501, + "referencedDeclaration": 1532, "src": "2180:8:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1269,18 +1269,18 @@ "typeString": "address" } ], - "id": 1516, + "id": 1547, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1432, + "referencedDeclaration": 1463, "src": "2151:20:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 1519, + "id": 1550, "isConstant": false, "isLValue": false, "isPure": false, @@ -1295,25 +1295,25 @@ "typeString": "tuple()" } }, - "id": 1520, + "id": 1551, "nodeType": "EmitStatement", "src": "2146:43:6" }, { "expression": { "argumentTypes": null, - "id": 1523, + "id": 1554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1521, + "id": 1552, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1426, + "referencedDeclaration": 1457, "src": "2199:6:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1324,11 +1324,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1522, + "id": 1553, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1501, + "referencedDeclaration": 1532, "src": "2208:8:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1341,33 +1341,33 @@ "typeString": "address" } }, - "id": 1524, + "id": 1555, "nodeType": "ExpressionStatement", "src": "2199:17:6" } ] }, "documentation": { - "id": 1499, + "id": 1530, "nodeType": "StructuredDocumentation", "src": "1840:138:6", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." }, "functionSelector": "f2fde38b", - "id": 1526, + "id": 1557, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1504, + "id": 1535, "modifierName": { "argumentTypes": null, - "id": 1503, + "id": 1534, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, + "referencedDeclaration": 1507, "src": "2043:9:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -1382,17 +1382,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1502, + "id": 1533, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1501, + "id": 1532, "mutability": "mutable", "name": "newOwner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1526, + "scope": 1557, "src": "2010:16:6", "stateVariable": false, "storageLocation": "default", @@ -1401,7 +1401,7 @@ "typeString": "address" }, "typeName": { - "id": 1500, + "id": 1531, "name": "address", "nodeType": "ElementaryTypeName", "src": "2010:7:6", @@ -1418,19 +1418,19 @@ "src": "2009:18:6" }, "returnParameters": { - "id": 1505, + "id": 1536, "nodeType": "ParameterList", "parameters": [], "src": "2053:0:6" }, - "scope": 1527, + "scope": 1558, "src": "1983:240:6", "stateMutability": "nonpayable", "virtual": true, "visibility": "public" } ], - "scope": 1528, + "scope": 1559, "src": "582:1643:6" } ], @@ -1440,15 +1440,15 @@ "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", "exportedSymbols": { "Ownable": [ - 1527 + 1558 ] }, - "id": 1528, + "id": 1559, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1420, + "id": 1451, "literals": [ "solidity", "^", @@ -1461,10 +1461,10 @@ { "absolutePath": "@openzeppelin/contracts/GSN/Context.sol", "file": "../GSN/Context.sol", - "id": 1421, + "id": 1452, "nodeType": "ImportDirective", - "scope": 1528, - "sourceUnit": 1136, + "scope": 1559, + "sourceUnit": 1167, "src": "58:28:6", "symbolAliases": [], "unitAlias": "" @@ -1476,48 +1476,48 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1423, + "id": 1454, "name": "Context", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1135, + "referencedDeclaration": 1166, "src": "602:7:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$1135", + "typeIdentifier": "t_contract$_Context_$1166", "typeString": "contract Context" } }, - "id": 1424, + "id": 1455, "nodeType": "InheritanceSpecifier", "src": "602:7:6" } ], "contractDependencies": [ - 1135 + 1166 ], "contractKind": "contract", "documentation": { - "id": 1422, + "id": 1453, "nodeType": "StructuredDocumentation", "src": "87:494:6", "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." }, "fullyImplemented": true, - "id": 1527, + "id": 1558, "linearizedBaseContracts": [ - 1527, - 1135 + 1558, + 1166 ], "name": "Ownable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1426, + "id": 1457, "mutability": "mutable", "name": "_owner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1527, + "scope": 1558, "src": "616:22:6", "stateVariable": true, "storageLocation": "default", @@ -1526,7 +1526,7 @@ "typeString": "address" }, "typeName": { - "id": 1425, + "id": 1456, "name": "address", "nodeType": "ElementaryTypeName", "src": "616:7:6", @@ -1542,22 +1542,22 @@ { "anonymous": false, "documentation": null, - "id": 1432, + "id": 1463, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 1431, + "id": 1462, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1428, + "id": 1459, "indexed": true, "mutability": "mutable", "name": "previousOwner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1432, + "scope": 1463, "src": "672:29:6", "stateVariable": false, "storageLocation": "default", @@ -1566,7 +1566,7 @@ "typeString": "address" }, "typeName": { - "id": 1427, + "id": 1458, "name": "address", "nodeType": "ElementaryTypeName", "src": "672:7:6", @@ -1581,13 +1581,13 @@ }, { "constant": false, - "id": 1430, + "id": 1461, "indexed": true, "mutability": "mutable", "name": "newOwner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1432, + "scope": 1463, "src": "703:24:6", "stateVariable": false, "storageLocation": "default", @@ -1596,7 +1596,7 @@ "typeString": "address" }, "typeName": { - "id": 1429, + "id": 1460, "name": "address", "nodeType": "ElementaryTypeName", "src": "703:7:6", @@ -1616,23 +1616,23 @@ }, { "body": { - "id": 1453, + "id": 1484, "nodeType": "Block", "src": "855:135:6", "statements": [ { "assignments": [ - 1437 + 1468 ], "declarations": [ { "constant": false, - "id": 1437, + "id": 1468, "mutability": "mutable", "name": "msgSender", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1453, + "scope": 1484, "src": "865:17:6", "stateVariable": false, "storageLocation": "default", @@ -1641,7 +1641,7 @@ "typeString": "address" }, "typeName": { - "id": 1436, + "id": 1467, "name": "address", "nodeType": "ElementaryTypeName", "src": "865:7:6", @@ -1655,24 +1655,24 @@ "visibility": "internal" } ], - "id": 1440, + "id": 1471, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 1438, + "id": 1469, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "885:10:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1439, + "id": 1470, "isConstant": false, "isLValue": false, "isPure": false, @@ -1693,18 +1693,18 @@ { "expression": { "argumentTypes": null, - "id": 1443, + "id": 1474, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1441, + "id": 1472, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1426, + "referencedDeclaration": 1457, "src": "907:6:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1715,11 +1715,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1442, + "id": 1473, "name": "msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1437, + "referencedDeclaration": 1468, "src": "916:9:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1732,7 +1732,7 @@ "typeString": "address" } }, - "id": 1444, + "id": 1475, "nodeType": "ExpressionStatement", "src": "907:18:6" }, @@ -1746,7 +1746,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1448, + "id": 1479, "isConstant": false, "isLValue": false, "isPure": true, @@ -1769,7 +1769,7 @@ "typeString": "int_const 0" } ], - "id": 1447, + "id": 1478, "isConstant": false, "isLValue": false, "isPure": true, @@ -1781,7 +1781,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 1446, + "id": 1477, "name": "address", "nodeType": "ElementaryTypeName", "src": "961:7:6", @@ -1791,7 +1791,7 @@ } } }, - "id": 1449, + "id": 1480, "isConstant": false, "isLValue": false, "isPure": true, @@ -1808,11 +1808,11 @@ }, { "argumentTypes": null, - "id": 1450, + "id": 1481, "name": "msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1437, + "referencedDeclaration": 1468, "src": "973:9:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1831,18 +1831,18 @@ "typeString": "address" } ], - "id": 1445, + "id": 1476, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1432, + "referencedDeclaration": 1463, "src": "940:20:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 1451, + "id": 1482, "isConstant": false, "isLValue": false, "isPure": false, @@ -1857,19 +1857,19 @@ "typeString": "tuple()" } }, - "id": 1452, + "id": 1483, "nodeType": "EmitStatement", "src": "935:48:6" } ] }, "documentation": { - "id": 1433, + "id": 1464, "nodeType": "StructuredDocumentation", "src": "735:91:6", "text": " @dev Initializes the contract setting the deployer as the initial owner." }, - "id": 1454, + "id": 1485, "implemented": true, "kind": "constructor", "modifiers": [], @@ -1877,18 +1877,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1434, + "id": 1465, "nodeType": "ParameterList", "parameters": [], "src": "843:2:6" }, "returnParameters": { - "id": 1435, + "id": 1466, "nodeType": "ParameterList", "parameters": [], "src": "855:0:6" }, - "scope": 1527, + "scope": 1558, "src": "831:159:6", "stateMutability": "nonpayable", "virtual": false, @@ -1896,39 +1896,39 @@ }, { "body": { - "id": 1462, + "id": 1493, "nodeType": "Block", "src": "1113:30:6", "statements": [ { "expression": { "argumentTypes": null, - "id": 1460, + "id": 1491, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1426, + "referencedDeclaration": 1457, "src": "1130:6:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1459, - "id": 1461, + "functionReturnParameters": 1490, + "id": 1492, "nodeType": "Return", "src": "1123:13:6" } ] }, "documentation": { - "id": 1455, + "id": 1486, "nodeType": "StructuredDocumentation", "src": "996:65:6", "text": " @dev Returns the address of the current owner." }, "functionSelector": "8da5cb5b", - "id": 1463, + "id": 1494, "implemented": true, "kind": "function", "modifiers": [], @@ -1936,23 +1936,23 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1456, + "id": 1487, "nodeType": "ParameterList", "parameters": [], "src": "1080:2:6" }, "returnParameters": { - "id": 1459, + "id": 1490, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1458, + "id": 1489, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1463, + "scope": 1494, "src": "1104:7:6", "stateVariable": false, "storageLocation": "default", @@ -1961,7 +1961,7 @@ "typeString": "address" }, "typeName": { - "id": 1457, + "id": 1488, "name": "address", "nodeType": "ElementaryTypeName", "src": "1104:7:6", @@ -1977,7 +1977,7 @@ ], "src": "1103:9:6" }, - "scope": 1527, + "scope": 1558, "src": "1066:77:6", "stateMutability": "view", "virtual": false, @@ -1985,7 +1985,7 @@ }, { "body": { - "id": 1475, + "id": 1506, "nodeType": "Block", "src": "1252:95:6", "statements": [ @@ -1999,18 +1999,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1470, + "id": 1501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1467, + "id": 1498, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1426, + "referencedDeclaration": 1457, "src": "1270:6:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2024,18 +2024,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1468, + "id": 1499, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "1280:10:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1469, + "id": 1500, "isConstant": false, "isLValue": false, "isPure": false, @@ -2059,7 +2059,7 @@ { "argumentTypes": null, "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", - "id": 1471, + "id": 1502, "isConstant": false, "isLValue": false, "isPure": true, @@ -2086,7 +2086,7 @@ "typeString": "literal_string \"Ownable: caller is not the owner\"" } ], - "id": 1466, + "id": 1497, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2100,7 +2100,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1472, + "id": 1503, "isConstant": false, "isLValue": false, "isPure": false, @@ -2115,29 +2115,29 @@ "typeString": "tuple()" } }, - "id": 1473, + "id": 1504, "nodeType": "ExpressionStatement", "src": "1262:67:6" }, { - "id": 1474, + "id": 1505, "nodeType": "PlaceholderStatement", "src": "1339:1:6" } ] }, "documentation": { - "id": 1464, + "id": 1495, "nodeType": "StructuredDocumentation", "src": "1149:77:6", "text": " @dev Throws if called by any account other than the owner." }, - "id": 1476, + "id": 1507, "name": "onlyOwner", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { - "id": 1465, + "id": 1496, "nodeType": "ParameterList", "parameters": [], "src": "1249:2:6" @@ -2148,7 +2148,7 @@ }, { "body": { - "id": 1497, + "id": 1528, "nodeType": "Block", "src": "1743:91:6", "statements": [ @@ -2158,11 +2158,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1483, + "id": 1514, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1426, + "referencedDeclaration": 1457, "src": "1779:6:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2175,7 +2175,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1486, + "id": 1517, "isConstant": false, "isLValue": false, "isPure": true, @@ -2198,7 +2198,7 @@ "typeString": "int_const 0" } ], - "id": 1485, + "id": 1516, "isConstant": false, "isLValue": false, "isPure": true, @@ -2210,7 +2210,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 1484, + "id": 1515, "name": "address", "nodeType": "ElementaryTypeName", "src": "1787:7:6", @@ -2220,7 +2220,7 @@ } } }, - "id": 1487, + "id": 1518, "isConstant": false, "isLValue": false, "isPure": true, @@ -2247,18 +2247,18 @@ "typeString": "address payable" } ], - "id": 1482, + "id": 1513, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1432, + "referencedDeclaration": 1463, "src": "1758:20:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 1488, + "id": 1519, "isConstant": false, "isLValue": false, "isPure": false, @@ -2273,25 +2273,25 @@ "typeString": "tuple()" } }, - "id": 1489, + "id": 1520, "nodeType": "EmitStatement", "src": "1753:45:6" }, { "expression": { "argumentTypes": null, - "id": 1495, + "id": 1526, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1490, + "id": 1521, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1426, + "referencedDeclaration": 1457, "src": "1808:6:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2306,7 +2306,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1493, + "id": 1524, "isConstant": false, "isLValue": false, "isPure": true, @@ -2329,7 +2329,7 @@ "typeString": "int_const 0" } ], - "id": 1492, + "id": 1523, "isConstant": false, "isLValue": false, "isPure": true, @@ -2341,7 +2341,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 1491, + "id": 1522, "name": "address", "nodeType": "ElementaryTypeName", "src": "1817:7:6", @@ -2351,7 +2351,7 @@ } } }, - "id": 1494, + "id": 1525, "isConstant": false, "isLValue": false, "isPure": true, @@ -2372,33 +2372,33 @@ "typeString": "address" } }, - "id": 1496, + "id": 1527, "nodeType": "ExpressionStatement", "src": "1808:19:6" } ] }, "documentation": { - "id": 1477, + "id": 1508, "nodeType": "StructuredDocumentation", "src": "1353:331:6", "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner." }, "functionSelector": "715018a6", - "id": 1498, + "id": 1529, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1480, + "id": 1511, "modifierName": { "argumentTypes": null, - "id": 1479, + "id": 1510, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, + "referencedDeclaration": 1507, "src": "1733:9:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -2413,18 +2413,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1478, + "id": 1509, "nodeType": "ParameterList", "parameters": [], "src": "1715:2:6" }, "returnParameters": { - "id": 1481, + "id": 1512, "nodeType": "ParameterList", "parameters": [], "src": "1743:0:6" }, - "scope": 1527, + "scope": 1558, "src": "1689:145:6", "stateMutability": "nonpayable", "virtual": true, @@ -2432,7 +2432,7 @@ }, { "body": { - "id": 1525, + "id": 1556, "nodeType": "Block", "src": "2053:170:6", "statements": [ @@ -2446,18 +2446,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1512, + "id": 1543, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1507, + "id": 1538, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1501, + "referencedDeclaration": 1532, "src": "2071:8:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2472,7 +2472,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1510, + "id": 1541, "isConstant": false, "isLValue": false, "isPure": true, @@ -2495,7 +2495,7 @@ "typeString": "int_const 0" } ], - "id": 1509, + "id": 1540, "isConstant": false, "isLValue": false, "isPure": true, @@ -2507,7 +2507,7 @@ "typeString": "type(address)" }, "typeName": { - "id": 1508, + "id": 1539, "name": "address", "nodeType": "ElementaryTypeName", "src": "2083:7:6", @@ -2517,7 +2517,7 @@ } } }, - "id": 1511, + "id": 1542, "isConstant": false, "isLValue": false, "isPure": true, @@ -2541,7 +2541,7 @@ { "argumentTypes": null, "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", - "id": 1513, + "id": 1544, "isConstant": false, "isLValue": false, "isPure": true, @@ -2568,7 +2568,7 @@ "typeString": "literal_string \"Ownable: new owner is the zero address\"" } ], - "id": 1506, + "id": 1537, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2582,7 +2582,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1514, + "id": 1545, "isConstant": false, "isLValue": false, "isPure": false, @@ -2597,7 +2597,7 @@ "typeString": "tuple()" } }, - "id": 1515, + "id": 1546, "nodeType": "ExpressionStatement", "src": "2063:73:6" }, @@ -2607,11 +2607,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1517, + "id": 1548, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1426, + "referencedDeclaration": 1457, "src": "2172:6:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2620,11 +2620,11 @@ }, { "argumentTypes": null, - "id": 1518, + "id": 1549, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1501, + "referencedDeclaration": 1532, "src": "2180:8:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2643,18 +2643,18 @@ "typeString": "address" } ], - "id": 1516, + "id": 1547, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1432, + "referencedDeclaration": 1463, "src": "2151:20:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 1519, + "id": 1550, "isConstant": false, "isLValue": false, "isPure": false, @@ -2669,25 +2669,25 @@ "typeString": "tuple()" } }, - "id": 1520, + "id": 1551, "nodeType": "EmitStatement", "src": "2146:43:6" }, { "expression": { "argumentTypes": null, - "id": 1523, + "id": 1554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1521, + "id": 1552, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1426, + "referencedDeclaration": 1457, "src": "2199:6:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2698,11 +2698,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1522, + "id": 1553, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1501, + "referencedDeclaration": 1532, "src": "2208:8:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2715,33 +2715,33 @@ "typeString": "address" } }, - "id": 1524, + "id": 1555, "nodeType": "ExpressionStatement", "src": "2199:17:6" } ] }, "documentation": { - "id": 1499, + "id": 1530, "nodeType": "StructuredDocumentation", "src": "1840:138:6", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." }, "functionSelector": "f2fde38b", - "id": 1526, + "id": 1557, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1504, + "id": 1535, "modifierName": { "argumentTypes": null, - "id": 1503, + "id": 1534, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, + "referencedDeclaration": 1507, "src": "2043:9:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -2756,17 +2756,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1502, + "id": 1533, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1501, + "id": 1532, "mutability": "mutable", "name": "newOwner", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1526, + "scope": 1557, "src": "2010:16:6", "stateVariable": false, "storageLocation": "default", @@ -2775,7 +2775,7 @@ "typeString": "address" }, "typeName": { - "id": 1500, + "id": 1531, "name": "address", "nodeType": "ElementaryTypeName", "src": "2010:7:6", @@ -2792,19 +2792,19 @@ "src": "2009:18:6" }, "returnParameters": { - "id": 1505, + "id": 1536, "nodeType": "ParameterList", "parameters": [], "src": "2053:0:6" }, - "scope": 1527, + "scope": 1558, "src": "1983:240:6", "stateMutability": "nonpayable", "virtual": true, "visibility": "public" } ], - "scope": 1528, + "scope": 1559, "src": "582:1643:6" } ], @@ -2812,13 +2812,14 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:05.964Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.654Z", "devdoc": { "details": "Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.", + "kind": "dev", "methods": { "constructor": { "details": "Initializes the contract setting the deployer as the initial owner." @@ -2832,9 +2833,12 @@ "transferOwnership(address)": { "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." } - } + }, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/Pausable.json b/abi/Pausable.json index 7767e73..b2c87fc 100644 --- a/abi/Pausable.json +++ b/abi/Pausable.json @@ -41,7 +41,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"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\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can 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 your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract in unpaused state.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Pausable.sol\":\"Pausable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c\",\"dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"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\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can 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 your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract in unpaused state.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Pausable.sol\":\"Pausable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c\",\"dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, @@ -53,15 +53,15 @@ "absolutePath": "@openzeppelin/contracts/utils/Pausable.sol", "exportedSymbols": { "Pausable": [ - 4210 + 4241 ] }, - "id": 4211, + "id": 4242, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 4122, + "id": 4153, "literals": [ "solidity", "^", @@ -74,10 +74,10 @@ { "absolutePath": "@openzeppelin/contracts/GSN/Context.sol", "file": "../GSN/Context.sol", - "id": 4123, + "id": 4154, "nodeType": "ImportDirective", - "scope": 4211, - "sourceUnit": 1136, + "scope": 4242, + "sourceUnit": 1167, "src": "58:28:21", "symbolAliases": [], "unitAlias": "" @@ -89,36 +89,36 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 4125, + "id": 4156, "name": "Context", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1135, + "referencedDeclaration": 1166, "src": "549:7:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$1135", + "typeIdentifier": "t_contract$_Context_$1166", "typeString": "contract Context" } }, - "id": 4126, + "id": 4157, "nodeType": "InheritanceSpecifier", "src": "549:7:21" } ], "contractDependencies": [ - 1135 + 1166 ], "contractKind": "contract", "documentation": { - "id": 4124, + "id": 4155, "nodeType": "StructuredDocumentation", "src": "88:439:21", "text": " @dev Contract module which allows children to implement an emergency stop\n mechanism that can 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 your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place." }, "fullyImplemented": true, - "id": 4210, + "id": 4241, "linearizedBaseContracts": [ - 4210, - 1135 + 4241, + 1166 ], "name": "Pausable", "nodeType": "ContractDefinition", @@ -126,27 +126,27 @@ { "anonymous": false, "documentation": { - "id": 4127, + "id": 4158, "nodeType": "StructuredDocumentation", "src": "563:73:21", "text": " @dev Emitted when the pause is triggered by `account`." }, - "id": 4131, + "id": 4162, "name": "Paused", "nodeType": "EventDefinition", "parameters": { - "id": 4130, + "id": 4161, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4129, + "id": 4160, "indexed": false, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4131, + "scope": 4162, "src": "654:15:21", "stateVariable": false, "storageLocation": "default", @@ -155,7 +155,7 @@ "typeString": "address" }, "typeName": { - "id": 4128, + "id": 4159, "name": "address", "nodeType": "ElementaryTypeName", "src": "654:7:21", @@ -176,27 +176,27 @@ { "anonymous": false, "documentation": { - "id": 4132, + "id": 4163, "nodeType": "StructuredDocumentation", "src": "677:70:21", "text": " @dev Emitted when the pause is lifted by `account`." }, - "id": 4136, + "id": 4167, "name": "Unpaused", "nodeType": "EventDefinition", "parameters": { - "id": 4135, + "id": 4166, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4134, + "id": 4165, "indexed": false, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4136, + "scope": 4167, "src": "767:15:21", "stateVariable": false, "storageLocation": "default", @@ -205,7 +205,7 @@ "typeString": "address" }, "typeName": { - "id": 4133, + "id": 4164, "name": "address", "nodeType": "ElementaryTypeName", "src": "767:7:21", @@ -225,12 +225,12 @@ }, { "constant": false, - "id": 4138, + "id": 4169, "mutability": "mutable", "name": "_paused", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4210, + "scope": 4241, "src": "790:20:21", "stateVariable": true, "storageLocation": "default", @@ -239,7 +239,7 @@ "typeString": "bool" }, "typeName": { - "id": 4137, + "id": 4168, "name": "bool", "nodeType": "ElementaryTypeName", "src": "790:4:21", @@ -253,25 +253,25 @@ }, { "body": { - "id": 4146, + "id": 4177, "nodeType": "Block", "src": "913:32:21", "statements": [ { "expression": { "argumentTypes": null, - "id": 4144, + "id": 4175, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4142, + "id": 4173, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4138, + "referencedDeclaration": 4169, "src": "923:7:21", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -283,7 +283,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 4143, + "id": 4174, "isConstant": false, "isLValue": false, "isPure": true, @@ -304,19 +304,19 @@ "typeString": "bool" } }, - "id": 4145, + "id": 4176, "nodeType": "ExpressionStatement", "src": "923:15:21" } ] }, "documentation": { - "id": 4139, + "id": 4170, "nodeType": "StructuredDocumentation", "src": "817:67:21", "text": " @dev Initializes the contract in unpaused state." }, - "id": 4147, + "id": 4178, "implemented": true, "kind": "constructor", "modifiers": [], @@ -324,18 +324,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4140, + "id": 4171, "nodeType": "ParameterList", "parameters": [], "src": "901:2:21" }, "returnParameters": { - "id": 4141, + "id": 4172, "nodeType": "ParameterList", "parameters": [], "src": "913:0:21" }, - "scope": 4210, + "scope": 4241, "src": "889:56:21", "stateMutability": "nonpayable", "virtual": false, @@ -343,39 +343,39 @@ }, { "body": { - "id": 4155, + "id": 4186, "nodeType": "Block", "src": "1085:31:21", "statements": [ { "expression": { "argumentTypes": null, - "id": 4153, + "id": 4184, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4138, + "referencedDeclaration": 4169, "src": "1102:7:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 4152, - "id": 4154, + "functionReturnParameters": 4183, + "id": 4185, "nodeType": "Return", "src": "1095:14:21" } ] }, "documentation": { - "id": 4148, + "id": 4179, "nodeType": "StructuredDocumentation", "src": "951:84:21", "text": " @dev Returns true if the contract is paused, and false otherwise." }, "functionSelector": "5c975abb", - "id": 4156, + "id": 4187, "implemented": true, "kind": "function", "modifiers": [], @@ -383,23 +383,23 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4149, + "id": 4180, "nodeType": "ParameterList", "parameters": [], "src": "1055:2:21" }, "returnParameters": { - "id": 4152, + "id": 4183, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4151, + "id": 4182, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4156, + "scope": 4187, "src": "1079:4:21", "stateVariable": false, "storageLocation": "default", @@ -408,7 +408,7 @@ "typeString": "bool" }, "typeName": { - "id": 4150, + "id": 4181, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1079:4:21", @@ -423,7 +423,7 @@ ], "src": "1078:6:21" }, - "scope": 4210, + "scope": 4241, "src": "1040:76:21", "stateMutability": "view", "virtual": false, @@ -431,7 +431,7 @@ }, { "body": { - "id": 4166, + "id": 4197, "nodeType": "Block", "src": "1327:65:21", "statements": [ @@ -441,7 +441,7 @@ "arguments": [ { "argumentTypes": null, - "id": 4161, + "id": 4192, "isConstant": false, "isLValue": false, "isPure": false, @@ -452,11 +452,11 @@ "src": "1345:8:21", "subExpression": { "argumentTypes": null, - "id": 4160, + "id": 4191, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4138, + "referencedDeclaration": 4169, "src": "1346:7:21", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -471,7 +471,7 @@ { "argumentTypes": null, "hexValue": "5061757361626c653a20706175736564", - "id": 4162, + "id": 4193, "isConstant": false, "isLValue": false, "isPure": true, @@ -498,7 +498,7 @@ "typeString": "literal_string \"Pausable: paused\"" } ], - "id": 4159, + "id": 4190, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -512,7 +512,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 4163, + "id": 4194, "isConstant": false, "isLValue": false, "isPure": false, @@ -527,29 +527,29 @@ "typeString": "tuple()" } }, - "id": 4164, + "id": 4195, "nodeType": "ExpressionStatement", "src": "1337:37:21" }, { - "id": 4165, + "id": 4196, "nodeType": "PlaceholderStatement", "src": "1384:1:21" } ] }, "documentation": { - "id": 4157, + "id": 4188, "nodeType": "StructuredDocumentation", "src": "1122:175:21", "text": " @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused." }, - "id": 4167, + "id": 4198, "name": "whenNotPaused", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { - "id": 4158, + "id": 4189, "nodeType": "ParameterList", "parameters": [], "src": "1324:2:21" @@ -560,7 +560,7 @@ }, { "body": { - "id": 4176, + "id": 4207, "nodeType": "Block", "src": "1592:68:21", "statements": [ @@ -570,11 +570,11 @@ "arguments": [ { "argumentTypes": null, - "id": 4171, + "id": 4202, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4138, + "referencedDeclaration": 4169, "src": "1610:7:21", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -584,7 +584,7 @@ { "argumentTypes": null, "hexValue": "5061757361626c653a206e6f7420706175736564", - "id": 4172, + "id": 4203, "isConstant": false, "isLValue": false, "isPure": true, @@ -611,7 +611,7 @@ "typeString": "literal_string \"Pausable: not paused\"" } ], - "id": 4170, + "id": 4201, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -625,7 +625,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 4173, + "id": 4204, "isConstant": false, "isLValue": false, "isPure": false, @@ -640,29 +640,29 @@ "typeString": "tuple()" } }, - "id": 4174, + "id": 4205, "nodeType": "ExpressionStatement", "src": "1602:40:21" }, { - "id": 4175, + "id": 4206, "nodeType": "PlaceholderStatement", "src": "1652:1:21" } ] }, "documentation": { - "id": 4168, + "id": 4199, "nodeType": "StructuredDocumentation", "src": "1398:167:21", "text": " @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused." }, - "id": 4177, + "id": 4208, "name": "whenPaused", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { - "id": 4169, + "id": 4200, "nodeType": "ParameterList", "parameters": [], "src": "1589:2:21" @@ -673,25 +673,25 @@ }, { "body": { - "id": 4192, + "id": 4223, "nodeType": "Block", "src": "1844:66:21", "statements": [ { "expression": { "argumentTypes": null, - "id": 4185, + "id": 4216, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4183, + "id": 4214, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4138, + "referencedDeclaration": 4169, "src": "1854:7:21", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -703,7 +703,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 4184, + "id": 4215, "isConstant": false, "isLValue": false, "isPure": true, @@ -724,7 +724,7 @@ "typeString": "bool" } }, - "id": 4186, + "id": 4217, "nodeType": "ExpressionStatement", "src": "1854:14:21" }, @@ -737,18 +737,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 4188, + "id": 4219, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "1890:10:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 4189, + "id": 4220, "isConstant": false, "isLValue": false, "isPure": false, @@ -771,18 +771,18 @@ "typeString": "address payable" } ], - "id": 4187, + "id": 4218, "name": "Paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4131, + "referencedDeclaration": 4162, "src": "1883:6:21", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 4190, + "id": 4221, "isConstant": false, "isLValue": false, "isPure": false, @@ -797,32 +797,32 @@ "typeString": "tuple()" } }, - "id": 4191, + "id": 4222, "nodeType": "EmitStatement", "src": "1878:25:21" } ] }, "documentation": { - "id": 4178, + "id": 4209, "nodeType": "StructuredDocumentation", "src": "1666:124:21", "text": " @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused." }, - "id": 4193, + "id": 4224, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 4181, + "id": 4212, "modifierName": { "argumentTypes": null, - "id": 4180, + "id": 4211, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "1830:13:21", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -837,18 +837,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4179, + "id": 4210, "nodeType": "ParameterList", "parameters": [], "src": "1810:2:21" }, "returnParameters": { - "id": 4182, + "id": 4213, "nodeType": "ParameterList", "parameters": [], "src": "1844:0:21" }, - "scope": 4210, + "scope": 4241, "src": "1795:115:21", "stateMutability": "nonpayable", "virtual": true, @@ -856,25 +856,25 @@ }, { "body": { - "id": 4208, + "id": 4239, "nodeType": "Block", "src": "2090:69:21", "statements": [ { "expression": { "argumentTypes": null, - "id": 4201, + "id": 4232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4199, + "id": 4230, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4138, + "referencedDeclaration": 4169, "src": "2100:7:21", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -886,7 +886,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 4200, + "id": 4231, "isConstant": false, "isLValue": false, "isPure": true, @@ -907,7 +907,7 @@ "typeString": "bool" } }, - "id": 4202, + "id": 4233, "nodeType": "ExpressionStatement", "src": "2100:15:21" }, @@ -920,18 +920,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 4204, + "id": 4235, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "2139:10:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 4205, + "id": 4236, "isConstant": false, "isLValue": false, "isPure": false, @@ -954,18 +954,18 @@ "typeString": "address payable" } ], - "id": 4203, + "id": 4234, "name": "Unpaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4136, + "referencedDeclaration": 4167, "src": "2130:8:21", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 4206, + "id": 4237, "isConstant": false, "isLValue": false, "isPure": false, @@ -980,32 +980,32 @@ "typeString": "tuple()" } }, - "id": 4207, + "id": 4238, "nodeType": "EmitStatement", "src": "2125:27:21" } ] }, "documentation": { - "id": 4194, + "id": 4225, "nodeType": "StructuredDocumentation", "src": "1916:121:21", "text": " @dev Returns to normal state.\n Requirements:\n - The contract must be paused." }, - "id": 4209, + "id": 4240, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 4197, + "id": 4228, "modifierName": { "argumentTypes": null, - "id": 4196, + "id": 4227, "name": "whenPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4177, + "referencedDeclaration": 4208, "src": "2079:10:21", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -1020,25 +1020,25 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4195, + "id": 4226, "nodeType": "ParameterList", "parameters": [], "src": "2059:2:21" }, "returnParameters": { - "id": 4198, + "id": 4229, "nodeType": "ParameterList", "parameters": [], "src": "2090:0:21" }, - "scope": 4210, + "scope": 4241, "src": "2042:117:21", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" } ], - "scope": 4211, + "scope": 4242, "src": "528:1633:21" } ], @@ -1048,15 +1048,15 @@ "absolutePath": "@openzeppelin/contracts/utils/Pausable.sol", "exportedSymbols": { "Pausable": [ - 4210 + 4241 ] }, - "id": 4211, + "id": 4242, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 4122, + "id": 4153, "literals": [ "solidity", "^", @@ -1069,10 +1069,10 @@ { "absolutePath": "@openzeppelin/contracts/GSN/Context.sol", "file": "../GSN/Context.sol", - "id": 4123, + "id": 4154, "nodeType": "ImportDirective", - "scope": 4211, - "sourceUnit": 1136, + "scope": 4242, + "sourceUnit": 1167, "src": "58:28:21", "symbolAliases": [], "unitAlias": "" @@ -1084,36 +1084,36 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 4125, + "id": 4156, "name": "Context", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1135, + "referencedDeclaration": 1166, "src": "549:7:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$1135", + "typeIdentifier": "t_contract$_Context_$1166", "typeString": "contract Context" } }, - "id": 4126, + "id": 4157, "nodeType": "InheritanceSpecifier", "src": "549:7:21" } ], "contractDependencies": [ - 1135 + 1166 ], "contractKind": "contract", "documentation": { - "id": 4124, + "id": 4155, "nodeType": "StructuredDocumentation", "src": "88:439:21", "text": " @dev Contract module which allows children to implement an emergency stop\n mechanism that can 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 your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place." }, "fullyImplemented": true, - "id": 4210, + "id": 4241, "linearizedBaseContracts": [ - 4210, - 1135 + 4241, + 1166 ], "name": "Pausable", "nodeType": "ContractDefinition", @@ -1121,27 +1121,27 @@ { "anonymous": false, "documentation": { - "id": 4127, + "id": 4158, "nodeType": "StructuredDocumentation", "src": "563:73:21", "text": " @dev Emitted when the pause is triggered by `account`." }, - "id": 4131, + "id": 4162, "name": "Paused", "nodeType": "EventDefinition", "parameters": { - "id": 4130, + "id": 4161, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4129, + "id": 4160, "indexed": false, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4131, + "scope": 4162, "src": "654:15:21", "stateVariable": false, "storageLocation": "default", @@ -1150,7 +1150,7 @@ "typeString": "address" }, "typeName": { - "id": 4128, + "id": 4159, "name": "address", "nodeType": "ElementaryTypeName", "src": "654:7:21", @@ -1171,27 +1171,27 @@ { "anonymous": false, "documentation": { - "id": 4132, + "id": 4163, "nodeType": "StructuredDocumentation", "src": "677:70:21", "text": " @dev Emitted when the pause is lifted by `account`." }, - "id": 4136, + "id": 4167, "name": "Unpaused", "nodeType": "EventDefinition", "parameters": { - "id": 4135, + "id": 4166, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4134, + "id": 4165, "indexed": false, "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4136, + "scope": 4167, "src": "767:15:21", "stateVariable": false, "storageLocation": "default", @@ -1200,7 +1200,7 @@ "typeString": "address" }, "typeName": { - "id": 4133, + "id": 4164, "name": "address", "nodeType": "ElementaryTypeName", "src": "767:7:21", @@ -1220,12 +1220,12 @@ }, { "constant": false, - "id": 4138, + "id": 4169, "mutability": "mutable", "name": "_paused", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4210, + "scope": 4241, "src": "790:20:21", "stateVariable": true, "storageLocation": "default", @@ -1234,7 +1234,7 @@ "typeString": "bool" }, "typeName": { - "id": 4137, + "id": 4168, "name": "bool", "nodeType": "ElementaryTypeName", "src": "790:4:21", @@ -1248,25 +1248,25 @@ }, { "body": { - "id": 4146, + "id": 4177, "nodeType": "Block", "src": "913:32:21", "statements": [ { "expression": { "argumentTypes": null, - "id": 4144, + "id": 4175, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4142, + "id": 4173, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4138, + "referencedDeclaration": 4169, "src": "923:7:21", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1278,7 +1278,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 4143, + "id": 4174, "isConstant": false, "isLValue": false, "isPure": true, @@ -1299,19 +1299,19 @@ "typeString": "bool" } }, - "id": 4145, + "id": 4176, "nodeType": "ExpressionStatement", "src": "923:15:21" } ] }, "documentation": { - "id": 4139, + "id": 4170, "nodeType": "StructuredDocumentation", "src": "817:67:21", "text": " @dev Initializes the contract in unpaused state." }, - "id": 4147, + "id": 4178, "implemented": true, "kind": "constructor", "modifiers": [], @@ -1319,18 +1319,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4140, + "id": 4171, "nodeType": "ParameterList", "parameters": [], "src": "901:2:21" }, "returnParameters": { - "id": 4141, + "id": 4172, "nodeType": "ParameterList", "parameters": [], "src": "913:0:21" }, - "scope": 4210, + "scope": 4241, "src": "889:56:21", "stateMutability": "nonpayable", "virtual": false, @@ -1338,39 +1338,39 @@ }, { "body": { - "id": 4155, + "id": 4186, "nodeType": "Block", "src": "1085:31:21", "statements": [ { "expression": { "argumentTypes": null, - "id": 4153, + "id": 4184, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4138, + "referencedDeclaration": 4169, "src": "1102:7:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 4152, - "id": 4154, + "functionReturnParameters": 4183, + "id": 4185, "nodeType": "Return", "src": "1095:14:21" } ] }, "documentation": { - "id": 4148, + "id": 4179, "nodeType": "StructuredDocumentation", "src": "951:84:21", "text": " @dev Returns true if the contract is paused, and false otherwise." }, "functionSelector": "5c975abb", - "id": 4156, + "id": 4187, "implemented": true, "kind": "function", "modifiers": [], @@ -1378,23 +1378,23 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4149, + "id": 4180, "nodeType": "ParameterList", "parameters": [], "src": "1055:2:21" }, "returnParameters": { - "id": 4152, + "id": 4183, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4151, + "id": 4182, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4156, + "scope": 4187, "src": "1079:4:21", "stateVariable": false, "storageLocation": "default", @@ -1403,7 +1403,7 @@ "typeString": "bool" }, "typeName": { - "id": 4150, + "id": 4181, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1079:4:21", @@ -1418,7 +1418,7 @@ ], "src": "1078:6:21" }, - "scope": 4210, + "scope": 4241, "src": "1040:76:21", "stateMutability": "view", "virtual": false, @@ -1426,7 +1426,7 @@ }, { "body": { - "id": 4166, + "id": 4197, "nodeType": "Block", "src": "1327:65:21", "statements": [ @@ -1436,7 +1436,7 @@ "arguments": [ { "argumentTypes": null, - "id": 4161, + "id": 4192, "isConstant": false, "isLValue": false, "isPure": false, @@ -1447,11 +1447,11 @@ "src": "1345:8:21", "subExpression": { "argumentTypes": null, - "id": 4160, + "id": 4191, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4138, + "referencedDeclaration": 4169, "src": "1346:7:21", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1466,7 +1466,7 @@ { "argumentTypes": null, "hexValue": "5061757361626c653a20706175736564", - "id": 4162, + "id": 4193, "isConstant": false, "isLValue": false, "isPure": true, @@ -1493,7 +1493,7 @@ "typeString": "literal_string \"Pausable: paused\"" } ], - "id": 4159, + "id": 4190, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1507,7 +1507,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 4163, + "id": 4194, "isConstant": false, "isLValue": false, "isPure": false, @@ -1522,29 +1522,29 @@ "typeString": "tuple()" } }, - "id": 4164, + "id": 4195, "nodeType": "ExpressionStatement", "src": "1337:37:21" }, { - "id": 4165, + "id": 4196, "nodeType": "PlaceholderStatement", "src": "1384:1:21" } ] }, "documentation": { - "id": 4157, + "id": 4188, "nodeType": "StructuredDocumentation", "src": "1122:175:21", "text": " @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused." }, - "id": 4167, + "id": 4198, "name": "whenNotPaused", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { - "id": 4158, + "id": 4189, "nodeType": "ParameterList", "parameters": [], "src": "1324:2:21" @@ -1555,7 +1555,7 @@ }, { "body": { - "id": 4176, + "id": 4207, "nodeType": "Block", "src": "1592:68:21", "statements": [ @@ -1565,11 +1565,11 @@ "arguments": [ { "argumentTypes": null, - "id": 4171, + "id": 4202, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4138, + "referencedDeclaration": 4169, "src": "1610:7:21", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1579,7 +1579,7 @@ { "argumentTypes": null, "hexValue": "5061757361626c653a206e6f7420706175736564", - "id": 4172, + "id": 4203, "isConstant": false, "isLValue": false, "isPure": true, @@ -1606,7 +1606,7 @@ "typeString": "literal_string \"Pausable: not paused\"" } ], - "id": 4170, + "id": 4201, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1620,7 +1620,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 4173, + "id": 4204, "isConstant": false, "isLValue": false, "isPure": false, @@ -1635,29 +1635,29 @@ "typeString": "tuple()" } }, - "id": 4174, + "id": 4205, "nodeType": "ExpressionStatement", "src": "1602:40:21" }, { - "id": 4175, + "id": 4206, "nodeType": "PlaceholderStatement", "src": "1652:1:21" } ] }, "documentation": { - "id": 4168, + "id": 4199, "nodeType": "StructuredDocumentation", "src": "1398:167:21", "text": " @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused." }, - "id": 4177, + "id": 4208, "name": "whenPaused", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { - "id": 4169, + "id": 4200, "nodeType": "ParameterList", "parameters": [], "src": "1589:2:21" @@ -1668,25 +1668,25 @@ }, { "body": { - "id": 4192, + "id": 4223, "nodeType": "Block", "src": "1844:66:21", "statements": [ { "expression": { "argumentTypes": null, - "id": 4185, + "id": 4216, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4183, + "id": 4214, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4138, + "referencedDeclaration": 4169, "src": "1854:7:21", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1698,7 +1698,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 4184, + "id": 4215, "isConstant": false, "isLValue": false, "isPure": true, @@ -1719,7 +1719,7 @@ "typeString": "bool" } }, - "id": 4186, + "id": 4217, "nodeType": "ExpressionStatement", "src": "1854:14:21" }, @@ -1732,18 +1732,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 4188, + "id": 4219, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "1890:10:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 4189, + "id": 4220, "isConstant": false, "isLValue": false, "isPure": false, @@ -1766,18 +1766,18 @@ "typeString": "address payable" } ], - "id": 4187, + "id": 4218, "name": "Paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4131, + "referencedDeclaration": 4162, "src": "1883:6:21", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 4190, + "id": 4221, "isConstant": false, "isLValue": false, "isPure": false, @@ -1792,32 +1792,32 @@ "typeString": "tuple()" } }, - "id": 4191, + "id": 4222, "nodeType": "EmitStatement", "src": "1878:25:21" } ] }, "documentation": { - "id": 4178, + "id": 4209, "nodeType": "StructuredDocumentation", "src": "1666:124:21", "text": " @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused." }, - "id": 4193, + "id": 4224, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 4181, + "id": 4212, "modifierName": { "argumentTypes": null, - "id": 4180, + "id": 4211, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, + "referencedDeclaration": 4198, "src": "1830:13:21", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -1832,18 +1832,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4179, + "id": 4210, "nodeType": "ParameterList", "parameters": [], "src": "1810:2:21" }, "returnParameters": { - "id": 4182, + "id": 4213, "nodeType": "ParameterList", "parameters": [], "src": "1844:0:21" }, - "scope": 4210, + "scope": 4241, "src": "1795:115:21", "stateMutability": "nonpayable", "virtual": true, @@ -1851,25 +1851,25 @@ }, { "body": { - "id": 4208, + "id": 4239, "nodeType": "Block", "src": "2090:69:21", "statements": [ { "expression": { "argumentTypes": null, - "id": 4201, + "id": 4232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4199, + "id": 4230, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4138, + "referencedDeclaration": 4169, "src": "2100:7:21", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1881,7 +1881,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 4200, + "id": 4231, "isConstant": false, "isLValue": false, "isPure": true, @@ -1902,7 +1902,7 @@ "typeString": "bool" } }, - "id": 4202, + "id": 4233, "nodeType": "ExpressionStatement", "src": "2100:15:21" }, @@ -1915,18 +1915,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 4204, + "id": 4235, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1123, + "referencedDeclaration": 1154, "src": "2139:10:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 4205, + "id": 4236, "isConstant": false, "isLValue": false, "isPure": false, @@ -1949,18 +1949,18 @@ "typeString": "address payable" } ], - "id": 4203, + "id": 4234, "name": "Unpaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4136, + "referencedDeclaration": 4167, "src": "2130:8:21", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 4206, + "id": 4237, "isConstant": false, "isLValue": false, "isPure": false, @@ -1975,32 +1975,32 @@ "typeString": "tuple()" } }, - "id": 4207, + "id": 4238, "nodeType": "EmitStatement", "src": "2125:27:21" } ] }, "documentation": { - "id": 4194, + "id": 4225, "nodeType": "StructuredDocumentation", "src": "1916:121:21", "text": " @dev Returns to normal state.\n Requirements:\n - The contract must be paused." }, - "id": 4209, + "id": 4240, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 4197, + "id": 4228, "modifierName": { "argumentTypes": null, - "id": 4196, + "id": 4227, "name": "whenPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4177, + "referencedDeclaration": 4208, "src": "2079:10:21", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -2015,25 +2015,25 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4195, + "id": 4226, "nodeType": "ParameterList", "parameters": [], "src": "2059:2:21" }, "returnParameters": { - "id": 4198, + "id": 4229, "nodeType": "ParameterList", "parameters": [], "src": "2090:0:21" }, - "scope": 4210, + "scope": 4241, "src": "2042:117:21", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" } ], - "scope": 4211, + "scope": 4242, "src": "528:1633:21" } ], @@ -2041,13 +2041,22 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:06.025Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.750Z", "devdoc": { "details": "Contract module which allows children to implement an emergency stop mechanism that can 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 your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.", + "events": { + "Paused(address)": { + "details": "Emitted when the pause is triggered by `account`." + }, + "Unpaused(address)": { + "details": "Emitted when the pause is lifted by `account`." + } + }, + "kind": "dev", "methods": { "constructor": { "details": "Initializes the contract in unpaused state." @@ -2055,9 +2064,12 @@ "paused()": { "details": "Returns true if the contract is paused, and false otherwise." } - } + }, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/PotLike.json b/abi/PotLike.json index 04cf885..d15c456 100644 --- a/abi/PotLike.json +++ b/abi/PotLike.json @@ -60,13 +60,13 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"chi\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"drip\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"pie\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rho\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/sencha/maker-badges/contracts/MakerBadges.sol\":\"PotLike\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/sencha/maker-badges/contracts/MakerBadges.sol\":{\"keccak256\":\"0x570c9a022411ed8db97e8acc575d01f784e70e13649a1fd2235174933f2886f8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d921c4b81919585f53c69fbfdf7e6745aa4b48ef7d602bd89f50c3acc850c27e\",\"dweb:/ipfs/QmQDWFVCvE9sc4SNVuTUg5gyh5FdsBhzhxv2hfGJWHaiyN\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x92f7900d382761c7faefeaced81c6b4f1aae909ed0551803bfe8f27101956360\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://407c0864143968542e5cf5aa7556916d2cf292b201e3dadb65662e9a3aa24187\",\"dweb:/ipfs/QmSnXzYAUaGLGr7uofRbgQraTJvatbjQLBPhyYiMd18oUJ\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c\",\"dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"chi\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"drip\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"pie\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rho\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/sencha/maker-badges/contracts/MakerBadges.sol\":\"PotLike\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/sencha/maker-badges/contracts/MakerBadges.sol\":{\"keccak256\":\"0x6c6ddbe292dbaed58b0aed79aea5edc21e6e3503f6988e50ffcb339050f3b010\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://66c4800e34af2d3ac348a783f351aa3f83f9d96389d774719efad2759bb8ccba\",\"dweb:/ipfs/QmZcMk7ehVeMvdifFd3bWfUeL4qXD5oMm1w1LwfttxmASr\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x92f7900d382761c7faefeaced81c6b4f1aae909ed0551803bfe8f27101956360\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://407c0864143968542e5cf5aa7556916d2cf292b201e3dadb65662e9a3aa24187\",\"dweb:/ipfs/QmSnXzYAUaGLGr7uofRbgQraTJvatbjQLBPhyYiMd18oUJ\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c\",\"dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, "sourceMap": "", "deployedSourceMap": "", - "source": "/// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.6.10;\npragma experimental ABIEncoderV2;\n\n\n/// @title Non-transferable Badges for Maker Ecosystem Activity, CDIP 18\n/// @author Nazzareno Massari @naszam\n/// @notice MakerBadges to check for activities on maker ecosystem and keep track of redeemers\n/// @dev See https://github.com/makerdao/community/issues/537\n/// @dev All function calls are currently implemented without side effects through TDD approach\n/// @dev OpenZeppelin library is used for secure contract development\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport \"@openzeppelin/contracts/utils/Pausable.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"@openzeppelin/contracts/utils/EnumerableSet.sol\";\n\ninterface PotLike {\n\n function pie(address guy) external view returns (uint256);\n function chi() external view returns (uint256);\n function rho() external view returns (uint256);\n function drip() external view returns (uint256);\n\n}\n\ninterface DSChiefLike {\n function votes(address) external view returns (bytes32);\n}\n\ninterface FlipperLike {\n struct Bid {\n uint256 bid;\n uint256 lot;\n address guy;\n uint48 tic;\n uint48 end;\n address usr;\n address gal;\n uint256 tab;\n}\n function bids(uint256) external view returns (Bid memory);\n}\n\ncontract MakerBadges is Ownable, AccessControl, Pausable {\n\n /// @dev Libraries\n using SafeMath for uint256;\n using EnumerableSet for EnumerableSet.AddressSet;\n\n bytes32 public constant PAUSER_ROLE = keccak256(\"PAUSER_ROLE\");\n\n bytes32[] public roots;\n\n mapping (uint256 => EnumerableSet.AddressSet) private redeemers;\n\n /// @dev Events\n event PotChecked(address guy);\n event DSChiefChecked(address guy);\n event FlipperChecked(address guy);\n\n /// @dev Data\n PotLike internal immutable pot;\n DSChiefLike internal immutable chief;\n FlipperLike internal immutable flipper;\n\n /// @dev Math\n uint256 constant RAY = 10 ** 27;\n\n function rmul(uint256 x, uint256 y) internal view whenNotPaused returns (uint256 z) {\n /// @dev always rounds down\n z = x.mul(y) / RAY;\n }\n\n constructor() public {\n _setupRole(DEFAULT_ADMIN_ROLE, owner());\n\n _setupRole(PAUSER_ROLE, owner());\n\n /// @dev MCD_POT Kovan Address https://kovan.etherscan.io/address/0xea190dbdc7adf265260ec4da6e9675fd4f5a78bb#code\n\tpot = PotLike(0xEA190DBDC7adF265260ec4dA6e9675Fd4f5A78bb);\n\n /// @dev MCD_ADM Kovan Address https://kovan.etherscan.io/address/0xbBFFC76e94B34F72D96D054b31f6424249c1337d#code\n chief = DSChiefLike(0xbBFFC76e94B34F72D96D054b31f6424249c1337d);\n\n /// @dev MCD_FLIP_ETH_A Kovan Address https://kovan.etherscan.io/address/0xB40139Ea36D35d0C9F6a2e62601B616F1FfbBD1b#code\n flipper = FlipperLike(0xB40139Ea36D35d0C9F6a2e62601B616F1FfbBD1b);\n\n }\n\n /// @notice Fallback function\n /// @dev Added not payable to revert transactions not matching any other function which send value\n fallback() external {\n revert();\n }\n\n /// @notice Set Merkle Tree Root Hashes array\n /// @dev Called by owner to update roots for different address batches by templateId\n /// @param rootHashes Root hashes of the Merkle Trees by templateId\n /// @return True if successfully updated\n function setRootHashes(bytes32[] calldata rootHashes) external onlyOwner whenNotPaused returns (bool) {\n roots = rootHashes;\n return true;\n }\n\n /// @notice Return the accrued interest of guy on Pot\n /// @dev Based on Chai dai() function\n /// @param guy Address to check\n /// @return wad Accrued interest of guy\n function _dai(address guy) private view whenNotPaused returns (uint256 wad) {\n uint256 slice = pot.pie(guy);\n uint256 chi = (now > pot.rho()) ? pot.drip() : pot.chi();\n wad = rmul(slice, chi);\n }\n\n /// @notice Pot Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @return True if the caller successfully checked for activity on Pot\n function potChallenge(uint256 templateId) external whenNotPaused returns (bool) {\n require(_dai(msg.sender) >= 1 ether, \"Caller has not accrued 1 or more Dai interest on Pot\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit PotChecked(msg.sender);\n return true;\n }\n\n /// @notice DSChief Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @return True if the caller successfully checked for activity on DSChief\n function chiefChallenge(uint256 templateId) external whenNotPaused returns (bool) {\n require(chief.votes(msg.sender) != 0x00, \"Caller is not voting in a Governance Poll\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit DSChiefChecked(msg.sender);\n return true;\n }\n\n /// @notice Flipper Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @dev guy, high bidder\n /// @return True if the caller successfully checked for activity on Flipper\n function flipperChallenge(uint256 templateId, uint256 bidId) external whenNotPaused returns (bool) {\n require(flipper.bids(bidId).guy == msg.sender, \"Caller is not the high bidder in the current Bid in Collateral Auctions\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit FlipperChecked(msg.sender);\n return true;\n }\n\n /// @notice Check if guy is a redeemer\n /// @dev Verify if the address of guy exists\n /// @param guy Address to verify\n /// @return True if guy is a redeemer\n function verify(uint256 templateId, address guy) external view whenNotPaused returns (bool) {\n return redeemers[templateId].contains(guy);\n }\n\n /// @notice Pause all the functions\n /// @dev the caller must have the 'PAUSER_ROLE'\n function pause() external {\n require(hasRole(PAUSER_ROLE, msg.sender), \"MakerBadges: must have pauser role to pause\");\n _pause();\n }\n\n /// @notice Unpause all the functions\n /// @dev the caller must have the 'PAUSER_ROLE'\n function unpause() external {\n require(hasRole(PAUSER_ROLE, msg.sender), \"MakerBadges: must have pauser role to unpause\");\n _unpause();\n }\n\n}\n", + "source": "/// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.6.11;\npragma experimental ABIEncoderV2;\n\n\n/// @title Non-transferable Badges for Maker Ecosystem Activity, CDIP 18\n/// @author Nazzareno Massari @naszam\n/// @notice MakerBadges to check for activities on maker ecosystem and keep track of redeemers\n/// @dev See https://github.com/makerdao/community/issues/537\n/// @dev All function calls are currently implemented without side effects through TDD approach\n/// @dev OpenZeppelin library is used for secure contract development\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport \"@openzeppelin/contracts/utils/Pausable.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"@openzeppelin/contracts/utils/EnumerableSet.sol\";\n\ninterface PotLike {\n\n function pie(address guy) external view returns (uint256);\n function chi() external view returns (uint256);\n function rho() external view returns (uint256);\n function drip() external view returns (uint256);\n\n}\n\ninterface DSChiefLike {\n function votes(address) external view returns (bytes32);\n}\n\ninterface FlipperLike {\n struct Bid {\n uint256 bid;\n uint256 lot;\n address guy;\n uint48 tic;\n uint48 end;\n address usr;\n address gal;\n uint256 tab;\n}\n function bids(uint256) external view returns (Bid memory);\n}\n\ncontract MakerBadges is Ownable, AccessControl, Pausable {\n\n /// @dev Libraries\n using SafeMath for uint256;\n using EnumerableSet for EnumerableSet.AddressSet;\n\n bytes32 public constant ADMIN_ROLE = keccak256(\"ADMIN_ROLE\");\n bytes32 public constant PAUSER_ROLE = keccak256(\"PAUSER_ROLE\");\n\n bytes32[] public roots;\n\n mapping (uint256 => EnumerableSet.AddressSet) private redeemers;\n\n /// @dev Events\n event PotChecked(address guy);\n event DSChiefChecked(address guy);\n event FlipperChecked(address guy);\n\n /// @dev Data\n PotLike internal immutable pot;\n DSChiefLike internal immutable chief;\n FlipperLike internal immutable flipper;\n\n /// @dev Math\n uint256 constant RAY = 10 ** 27;\n\n function rmul(uint256 x, uint256 y) internal view whenNotPaused returns (uint256 z) {\n /// @dev always rounds down\n z = x.mul(y) / RAY;\n }\n\n constructor(address pot_, address chief_, address flipper_) public {\n _setupRole(DEFAULT_ADMIN_ROLE, owner());\n\n _setupRole(ADMIN_ROLE, owner());\n _setupRole(PAUSER_ROLE, owner());\n\n /// @dev MCD_POT Address\n pot = PotLike(pot_);\n\n /// @dev MCD_ADM Address\n chief = DSChiefLike(chief_);\n\n /// @dev MCD_FLIP_ETH_A Address\n flipper = FlipperLike(flipper_);\n\n }\n\n /// @notice Fallback function\n /// @dev Added not payable to revert transactions not matching any other function which send value\n fallback() external {\n revert();\n }\n\n /// @dev Modifiers\n modifier onlyAdmin() {\n require(hasRole(ADMIN_ROLE, msg.sender), \"Caller is not an admin\");\n _;\n }\n\n\n /// @notice Set Merkle Tree Root Hashes array\n /// @dev Called by owner to update roots for different address batches by templateId\n /// @param rootHashes Root hashes of the Merkle Trees by templateId\n /// @return True if successfully updated\n function setRootHashes(bytes32[] calldata rootHashes) external onlyAdmin whenNotPaused returns (bool) {\n roots = rootHashes;\n return true;\n }\n\n /// @notice Return the accrued interest of guy on Pot\n /// @dev Based on Chai dai() function\n /// @param guy Address to check\n /// @return wad Accrued interest of guy\n function _dai(address guy) private view whenNotPaused returns (uint256 wad) {\n uint256 slice = pot.pie(guy);\n uint256 chi = (now > pot.rho()) ? pot.drip() : pot.chi();\n wad = rmul(slice, chi);\n }\n\n /// @notice Pot Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @return True if the caller successfully checked for activity on Pot\n function potChallenge(uint256 templateId) external whenNotPaused returns (bool) {\n require(_dai(msg.sender) >= 1 ether, \"Caller has not accrued 1 or more Dai interest on Pot\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit PotChecked(msg.sender);\n return true;\n }\n\n /// @notice DSChief Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @return True if the caller successfully checked for activity on DSChief\n function chiefChallenge(uint256 templateId) external whenNotPaused returns (bool) {\n require(chief.votes(msg.sender) != 0x00, \"Caller is not voting in an Executive Spell\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit DSChiefChecked(msg.sender);\n return true;\n }\n\n /// @notice Flipper Challenge\n /// @dev Keeps track of the address of the caller if successful\n /// @dev guy, high bidder\n /// @return True if the caller successfully checked for activity on Flipper\n function flipperChallenge(uint256 templateId, uint256 bidId) external whenNotPaused returns (bool) {\n require(flipper.bids(bidId).guy == msg.sender, \"Caller is not the high bidder in the current Bid in Collateral Auctions\");\n if (!redeemers[templateId].contains(msg.sender)) {\n require(redeemers[templateId].add(msg.sender));\n }\n emit FlipperChecked(msg.sender);\n return true;\n }\n\n /// @notice Check if guy is a redeemer\n /// @dev Verify if the address of guy exists\n /// @param guy Address to verify\n /// @return True if guy is a redeemer\n function verify(uint256 templateId, address guy) external view whenNotPaused returns (bool) {\n return redeemers[templateId].contains(guy);\n }\n\n /// @notice Pause all the functions\n /// @dev the caller must have the 'PAUSER_ROLE'\n function pause() external {\n require(hasRole(PAUSER_ROLE, msg.sender), \"MakerBadges: must have pauser role to pause\");\n _pause();\n }\n\n /// @notice Unpause all the functions\n /// @dev the caller must have the 'PAUSER_ROLE'\n function unpause() external {\n require(hasRole(PAUSER_ROLE, msg.sender), \"MakerBadges: must have pauser role to unpause\");\n _unpause();\n }\n\n}\n", "sourcePath": "/home/sencha/maker-badges/contracts/MakerBadges.sol", "ast": { "absolutePath": "/home/sencha/maker-badges/contracts/MakerBadges.sol", @@ -78,13 +78,13 @@ 697 ], "MakerBadges": [ - 1075 + 1106 ], "PotLike": [ 664 ] }, - "id": 1076, + "id": 1107, "license": "GPL-3.0", "nodeType": "SourceUnit", "nodes": [ @@ -93,7 +93,7 @@ "literals": [ "solidity", "0.6", - ".10" + ".11" ], "nodeType": "PragmaDirective", "src": "37:23:2" @@ -112,8 +112,8 @@ "file": "@openzeppelin/contracts/access/Ownable.sol", "id": 637, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1528, + "scope": 1107, + "sourceUnit": 1559, "src": "532:52:2", "symbolAliases": [], "unitAlias": "" @@ -123,8 +123,8 @@ "file": "@openzeppelin/contracts/access/AccessControl.sol", "id": 638, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1419, + "scope": 1107, + "sourceUnit": 1450, "src": "585:58:2", "symbolAliases": [], "unitAlias": "" @@ -134,8 +134,8 @@ "file": "@openzeppelin/contracts/utils/Pausable.sol", "id": 639, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 4211, + "scope": 1107, + "sourceUnit": 4242, "src": "644:52:2", "symbolAliases": [], "unitAlias": "" @@ -145,8 +145,8 @@ "file": "@openzeppelin/contracts/math/SafeMath.sol", "id": 640, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1864, + "scope": 1107, + "sourceUnit": 1895, "src": "697:51:2", "symbolAliases": [], "unitAlias": "" @@ -156,8 +156,8 @@ "file": "@openzeppelin/contracts/utils/EnumerableSet.sol", "id": 641, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 4121, + "scope": 1107, + "sourceUnit": 4152, "src": "749:57:2", "symbolAliases": [], "unitAlias": "" @@ -439,7 +439,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "808:243:2" }, { @@ -545,7 +545,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "1053:84:2" }, { @@ -890,7 +890,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "1139:240:2" }, { @@ -903,10 +903,10 @@ "id": 698, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1527, + "referencedDeclaration": 1558, "src": "1405:7:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$1527", + "typeIdentifier": "t_contract$_Ownable_$1558", "typeString": "contract Ownable" } }, @@ -921,10 +921,10 @@ "id": 700, "name": "AccessControl", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1418, + "referencedDeclaration": 1449, "src": "1414:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_AccessControl_$1418", + "typeIdentifier": "t_contract$_AccessControl_$1449", "typeString": "contract AccessControl" } }, @@ -939,10 +939,10 @@ "id": 702, "name": "Pausable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4210, + "referencedDeclaration": 4241, "src": "1429:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pausable_$4210", + "typeIdentifier": "t_contract$_Pausable_$4241", "typeString": "contract Pausable" } }, @@ -952,21 +952,21 @@ } ], "contractDependencies": [ - 1135, - 1418, - 1527, - 4210 + 1166, + 1449, + 1558, + 4241 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1075, + "id": 1106, "linearizedBaseContracts": [ - 1075, - 4210, - 1418, - 1527, - 1135 + 1106, + 4241, + 1449, + 1558, + 1166 ], "name": "MakerBadges", "nodeType": "ContractDefinition", @@ -978,10 +978,10 @@ "id": 704, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1863, + "referencedDeclaration": 1894, "src": "1470:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1863", + "typeIdentifier": "t_contract$_SafeMath_$1894", "typeString": "library SafeMath" } }, @@ -1005,10 +1005,10 @@ "id": 707, "name": "EnumerableSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4120, + "referencedDeclaration": 4151, "src": "1500:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_EnumerableSet_$4120", + "typeIdentifier": "t_contract$_EnumerableSet_$4151", "typeString": "library EnumerableSet" } }, @@ -1019,24 +1019,24 @@ "id": 708, "name": "EnumerableSet.AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, + "referencedDeclaration": 3947, "src": "1518:24:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } } }, { "constant": true, - "functionSelector": "e63ab1e9", + "functionSelector": "75b238fc", "id": 714, "mutability": "constant", - "name": "PAUSER_ROLE", + "name": "ADMIN_ROLE", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1547:62:2", + "scope": 1106, + "src": "1547:60:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1058,7 +1058,7 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "5041555345525f524f4c45", + "hexValue": "41444d494e5f524f4c45", "id": 712, "isConstant": false, "isLValue": false, @@ -1066,7 +1066,90 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1595:13:2", + "src": "1594:12:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", + "typeString": "literal_string \"ADMIN_ROLE\"" + }, + "value": "ADMIN_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", + "typeString": "literal_string \"ADMIN_ROLE\"" + } + ], + "id": 711, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1584:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1584:23:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "e63ab1e9", + "id": 719, + "mutability": "constant", + "name": "PAUSER_ROLE", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1106, + "src": "1611:62:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 715, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1611:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "5041555345525f524f4c45", + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1659:13:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a", @@ -1082,18 +1165,18 @@ "typeString": "literal_string \"PAUSER_ROLE\"" } ], - "id": 711, + "id": 716, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "1585:9:2", + "src": "1649:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 713, + "id": 718, "isConstant": false, "isLValue": false, "isPure": true, @@ -1101,7 +1184,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1585:24:2", + "src": "1649:24:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1113,13 +1196,13 @@ { "constant": false, "functionSelector": "c2b40ae4", - "id": 717, + "id": 722, "mutability": "mutable", "name": "roots", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1614:22:2", + "scope": 1106, + "src": "1678:22:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1128,19 +1211,19 @@ }, "typeName": { "baseType": { - "id": 715, + "id": 720, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1614:7:2", + "src": "1678:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 716, + "id": 721, "length": null, "nodeType": "ArrayTypeName", - "src": "1614:9:2", + "src": "1678:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -1151,46 +1234,46 @@ }, { "constant": false, - "id": 721, + "id": 726, "mutability": "mutable", "name": "redeemers", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1641:63:2", + "scope": 1106, + "src": "1705:63:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet)" }, "typeName": { - "id": 720, + "id": 725, "keyType": { - "id": 718, + "id": 723, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1650:7:2", + "src": "1714:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "1641:45:2", + "src": "1705:45:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet)" }, "valueType": { "contractScope": null, - "id": 719, + "id": 724, "name": "EnumerableSet.AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, - "src": "1661:24:2", + "referencedDeclaration": 3947, + "src": "1725:24:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } } @@ -1201,28 +1284,28 @@ { "anonymous": false, "documentation": { - "id": 722, + "id": 727, "nodeType": "StructuredDocumentation", - "src": "1709:15:2", + "src": "1773:15:2", "text": "@dev Events" }, - "id": 726, + "id": 731, "name": "PotChecked", "nodeType": "EventDefinition", "parameters": { - "id": 725, + "id": 730, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 724, + "id": 729, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 726, - "src": "1744:11:2", + "scope": 731, + "src": "1808:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1230,10 +1313,10 @@ "typeString": "address" }, "typeName": { - "id": 723, + "id": 728, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1744:7:2", + "src": "1808:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1244,30 +1327,30 @@ "visibility": "internal" } ], - "src": "1743:13:2" + "src": "1807:13:2" }, - "src": "1727:30:2" + "src": "1791:30:2" }, { "anonymous": false, "documentation": null, - "id": 730, + "id": 735, "name": "DSChiefChecked", "nodeType": "EventDefinition", "parameters": { - "id": 729, + "id": 734, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 728, + "id": 733, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 730, - "src": "1781:11:2", + "scope": 735, + "src": "1845:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1275,10 +1358,10 @@ "typeString": "address" }, "typeName": { - "id": 727, + "id": 732, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1781:7:2", + "src": "1845:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1289,30 +1372,30 @@ "visibility": "internal" } ], - "src": "1780:13:2" + "src": "1844:13:2" }, - "src": "1760:34:2" + "src": "1824:34:2" }, { "anonymous": false, "documentation": null, - "id": 734, + "id": 739, "name": "FlipperChecked", "nodeType": "EventDefinition", "parameters": { - "id": 733, + "id": 738, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 732, + "id": 737, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 734, - "src": "1818:11:2", + "scope": 739, + "src": "1882:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1320,10 +1403,10 @@ "typeString": "address" }, "typeName": { - "id": 731, + "id": 736, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1818:7:2", + "src": "1882:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1334,25 +1417,25 @@ "visibility": "internal" } ], - "src": "1817:13:2" + "src": "1881:13:2" }, - "src": "1797:34:2" + "src": "1861:34:2" }, { "constant": false, "documentation": { - "id": 735, + "id": 740, "nodeType": "StructuredDocumentation", - "src": "1835:13:2", + "src": "1899:13:2", "text": "@dev Data" }, - "id": 737, + "id": 742, "mutability": "immutable", "name": "pot", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1851:31:2", + "scope": 1106, + "src": "1915:31:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1361,11 +1444,11 @@ }, "typeName": { "contractScope": null, - "id": 736, + "id": 741, "name": "PotLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 664, - "src": "1851:7:2", + "src": "1915:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" @@ -1376,13 +1459,13 @@ }, { "constant": false, - "id": 739, + "id": 744, "mutability": "immutable", "name": "chief", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1886:36:2", + "scope": 1106, + "src": "1950:36:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1391,11 +1474,11 @@ }, "typeName": { "contractScope": null, - "id": 738, + "id": 743, "name": "DSChiefLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 672, - "src": "1886:11:2", + "src": "1950:11:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" @@ -1406,13 +1489,13 @@ }, { "constant": false, - "id": 741, + "id": 746, "mutability": "immutable", "name": "flipper", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1926:38:2", + "scope": 1106, + "src": "1990:38:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1421,11 +1504,11 @@ }, "typeName": { "contractScope": null, - "id": 740, + "id": 745, "name": "FlipperLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 697, - "src": "1926:11:2", + "src": "1990:11:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" @@ -1437,18 +1520,18 @@ { "constant": true, "documentation": { - "id": 742, + "id": 747, "nodeType": "StructuredDocumentation", - "src": "1969:13:2", + "src": "2033:13:2", "text": "@dev Math" }, - "id": 747, + "id": 752, "mutability": "constant", "name": "RAY", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1985:31:2", + "scope": 1106, + "src": "2049:31:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1456,10 +1539,10 @@ "typeString": "uint256" }, "typeName": { - "id": 743, + "id": 748, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1985:7:2", + "src": "2049:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1471,7 +1554,7 @@ "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" }, - "id": 746, + "id": 751, "isConstant": false, "isLValue": false, "isPure": true, @@ -1479,14 +1562,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 744, + "id": 749, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2008:2:2", + "src": "2072:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -1499,14 +1582,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3237", - "id": 745, + "id": 750, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2014:2:2", + "src": "2078:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_27_by_1", @@ -1514,7 +1597,7 @@ }, "value": "27" }, - "src": "2008:8:2", + "src": "2072:8:2", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" @@ -1524,26 +1607,26 @@ }, { "body": { - "id": 767, + "id": 772, "nodeType": "Block", - "src": "2105:73:2", + "src": "2169:73:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 765, + "id": 770, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 758, + "id": 763, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 756, - "src": "2155:1:2", + "referencedDeclaration": 761, + "src": "2219:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1557,7 +1640,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 764, + "id": 769, "isConstant": false, "isLValue": false, "isPure": false, @@ -1567,12 +1650,12 @@ "arguments": [ { "argumentTypes": null, - "id": 761, + "id": 766, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 751, - "src": "2165:1:2", + "referencedDeclaration": 756, + "src": "2229:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1588,32 +1671,32 @@ ], "expression": { "argumentTypes": null, - "id": 759, + "id": 764, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "2159:1:2", + "referencedDeclaration": 754, + "src": "2223:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 760, + "id": 765, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 1776, - "src": "2159:5:2", + "referencedDeclaration": 1807, + "src": "2223:5: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": 762, + "id": 767, "isConstant": false, "isLValue": false, "isPure": false, @@ -1621,7 +1704,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2159:8:2", + "src": "2223:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1632,76 +1715,76 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 763, + "id": 768, "name": "RAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 747, - "src": "2170:3:2", + "referencedDeclaration": 752, + "src": "2234:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2159:14:2", + "src": "2223:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2155:18:2", + "src": "2219:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 766, + "id": 771, "nodeType": "ExpressionStatement", - "src": "2155:18:2" + "src": "2219:18:2" } ] }, "documentation": null, - "id": 768, + "id": 773, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 754, + "id": 759, "modifierName": { "argumentTypes": null, - "id": 753, + "id": 758, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "2071:13:2", + "referencedDeclaration": 4198, + "src": "2135:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2071:13:2" + "src": "2135:13:2" } ], "name": "rmul", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 752, + "id": 757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 749, + "id": 754, "mutability": "mutable", "name": "x", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2035:9:2", + "scope": 773, + "src": "2099:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1709,10 +1792,10 @@ "typeString": "uint256" }, "typeName": { - "id": 748, + "id": 753, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2035:7:2", + "src": "2099:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1723,13 +1806,13 @@ }, { "constant": false, - "id": 751, + "id": 756, "mutability": "mutable", "name": "y", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2046:9:2", + "scope": 773, + "src": "2110:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1737,10 +1820,10 @@ "typeString": "uint256" }, "typeName": { - "id": 750, + "id": 755, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2046:7:2", + "src": "2110:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1750,21 +1833,21 @@ "visibility": "internal" } ], - "src": "2034:22:2" + "src": "2098:22:2" }, "returnParameters": { - "id": 757, + "id": 762, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 756, + "id": 761, "mutability": "mutable", "name": "z", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2094:9:2", + "scope": 773, + "src": "2158:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1772,10 +1855,10 @@ "typeString": "uint256" }, "typeName": { - "id": 755, + "id": 760, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2094:7:2", + "src": "2158:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1785,19 +1868,19 @@ "visibility": "internal" } ], - "src": "2093:11:2" + "src": "2157:11:2" }, - "scope": 1075, - "src": "2021:157:2", + "scope": 1106, + "src": "2085:157:2", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 801, + "id": 818, "nodeType": "Block", - "src": "2203:682:2", + "src": "2313:355:2", "statements": [ { "expression": { @@ -1805,12 +1888,12 @@ "arguments": [ { "argumentTypes": null, - "id": 772, + "id": 783, "name": "DEFAULT_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1161, - "src": "2224:18:2", + "referencedDeclaration": 1192, + "src": "2334:18:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1821,18 +1904,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 773, + "id": 784, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "2244:5:2", + "referencedDeclaration": 1494, + "src": "2354:5:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 774, + "id": 785, "isConstant": false, "isLValue": false, "isPure": false, @@ -1840,7 +1923,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2244:7:2", + "src": "2354:7:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -1859,18 +1942,18 @@ "typeString": "address" } ], - "id": 771, + "id": 782, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "2213:10:2", + "referencedDeclaration": 1375, + "src": "2323:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 775, + "id": 786, "isConstant": false, "isLValue": false, "isPure": false, @@ -1878,16 +1961,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2213:39:2", + "src": "2323:39:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 776, + "id": 787, "nodeType": "ExpressionStatement", - "src": "2213:39:2" + "src": "2323:39:2" }, { "expression": { @@ -1895,12 +1978,102 @@ "arguments": [ { "argumentTypes": null, - "id": 778, - "name": "PAUSER_ROLE", + "id": 789, + "name": "ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 714, - "src": "2274:11:2", + "src": "2384:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 790, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "2396:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2396:7:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 788, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1375, + "src": "2373:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2373:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 793, + "nodeType": "ExpressionStatement", + "src": "2373:31:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 795, + "name": "PAUSER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 719, + "src": "2425:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1911,18 +2084,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 779, + "id": 796, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "2287:5:2", + "referencedDeclaration": 1494, + "src": "2438:5:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 780, + "id": 797, "isConstant": false, "isLValue": false, "isPure": false, @@ -1930,7 +2103,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2287:7:2", + "src": "2438:7:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -1949,18 +2122,18 @@ "typeString": "address" } ], - "id": 777, + "id": 794, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "2263:10:2", + "referencedDeclaration": 1375, + "src": "2414:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 781, + "id": 798, "isConstant": false, "isLValue": false, "isPure": false, @@ -1968,33 +2141,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2263:32:2", + "src": "2414:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 782, + "id": 799, "nodeType": "ExpressionStatement", - "src": "2263:32:2" + "src": "2414:32:2" }, { "expression": { "argumentTypes": null, - "id": 787, + "id": 804, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 783, + "id": 800, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "2421:3:2", + "referencedDeclaration": 742, + "src": "2490:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" @@ -2007,82 +2180,77 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307845413139304442444337616446323635323630656334644136653936373546643466354137386262", - "id": 785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2435:42:2", - "subdenomination": null, + "id": 802, + "name": "pot_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 775, + "src": "2504:4:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xEA190DBDC7adF265260ec4dA6e9675Fd4f5A78bb" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 784, + "id": 801, "name": "PotLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 664, - "src": "2427:7:2", + "src": "2496:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_PotLike_$664_$", "typeString": "type(contract PotLike)" } }, - "id": 786, + "id": 803, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2427:51:2", + "src": "2496:13:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "src": "2421:57:2", + "src": "2490:19:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 788, + "id": 805, "nodeType": "ExpressionStatement", - "src": "2421:57:2" + "src": "2490:19:2" }, { "expression": { "argumentTypes": null, - "id": 793, + "id": 810, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 789, + "id": 806, "name": "chief", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "2611:5:2", + "referencedDeclaration": 744, + "src": "2553:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" @@ -2095,82 +2263,77 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307862424646433736653934423334463732443936443035346233316636343234323439633133333764", - "id": 791, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2631:42:2", - "subdenomination": null, + "id": 808, + "name": "chief_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 777, + "src": "2573:6:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xbBFFC76e94B34F72D96D054b31f6424249c1337d" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 790, + "id": 807, "name": "DSChiefLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 672, - "src": "2619:11:2", + "src": "2561:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DSChiefLike_$672_$", "typeString": "type(contract DSChiefLike)" } }, - "id": 792, + "id": 809, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2619:55:2", + "src": "2561:19:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "src": "2611:63:2", + "src": "2553:27:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "id": 794, + "id": 811, "nodeType": "ExpressionStatement", - "src": "2611:63:2" + "src": "2553:27:2" }, { "expression": { "argumentTypes": null, - "id": 799, + "id": 816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 795, + "id": 812, "name": "flipper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "2814:7:2", + "referencedDeclaration": 746, + "src": "2631:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" @@ -2183,70 +2346,65 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307842343031333945613336443335643043394636613265363236303142363136463146666242443162", - "id": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2836:42:2", - "subdenomination": null, + "id": 814, + "name": "flipper_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "2653:8:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xB40139Ea36D35d0C9F6a2e62601B616F1FfbBD1b" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 796, + "id": 813, "name": "FlipperLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 697, - "src": "2824:11:2", + "src": "2641:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FlipperLike_$697_$", "typeString": "type(contract FlipperLike)" } }, - "id": 798, + "id": 815, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2824:55:2", + "src": "2641:21:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" } }, - "src": "2814:65:2", + "src": "2631:31:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" } }, - "id": 800, + "id": 817, "nodeType": "ExpressionStatement", - "src": "2814:65:2" + "src": "2631:31:2" } ] }, "documentation": null, - "id": 802, + "id": 819, "implemented": true, "kind": "constructor", "modifiers": [], @@ -2254,50 +2412,138 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 769, - "nodeType": "ParameterList", - "parameters": [], - "src": "2193:2:2" - }, - "returnParameters": { - "id": 770, + "id": 780, "nodeType": "ParameterList", - "parameters": [], - "src": "2203:0:2" - }, - "scope": 1075, - "src": "2182:703:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 809, - "nodeType": "Block", - "src": "3042:19:2", - "statements": [ + "parameters": [ { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 806, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -19, + "constant": false, + "id": 775, + "mutability": "mutable", + "name": "pot_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2258:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 774, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2258:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 777, + "mutability": "mutable", + "name": "chief_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2272:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 776, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2272:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 779, + "mutability": "mutable", + "name": "flipper_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2288:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2288:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2257:48:2" + }, + "returnParameters": { + "id": 781, + "nodeType": "ParameterList", + "parameters": [], + "src": "2313:0:2" + }, + "scope": 1106, + "src": "2246:422:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 826, + "nodeType": "Block", + "src": "2825:19:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 823, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, -19 ], "referencedDeclaration": -19, - "src": "3048:6:2", + "src": "2831:6:2", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 807, + "id": 824, "isConstant": false, "isLValue": false, "isPure": false, @@ -2305,26 +2551,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3048:8:2", + "src": "2831:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 808, + "id": 825, "nodeType": "ExpressionStatement", - "src": "3048:8:2" + "src": "2831:8:2" } ] }, "documentation": { - "id": 803, + "id": 820, "nodeType": "StructuredDocumentation", - "src": "2889:130:2", + "src": "2672:130:2", "text": "@notice Fallback function\n @dev Added not payable to revert transactions not matching any other function which send value" }, - "id": 810, + "id": 827, "implemented": true, "kind": "fallback", "modifiers": [], @@ -2332,45 +2578,228 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 804, + "id": 821, "nodeType": "ParameterList", "parameters": [], - "src": "3030:2:2" + "src": "2813:2:2" }, "returnParameters": { - "id": 805, + "id": 822, "nodeType": "ParameterList", "parameters": [], - "src": "3042:0:2" + "src": "2825:0:2" }, - "scope": 1075, - "src": "3022:39:2", + "scope": 1106, + "src": "2805:39:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { + "id": 840, + "nodeType": "Block", + "src": "2890:90:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 832, + "name": "ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 714, + "src": "2914:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 833, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2926:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2926:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 831, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1238, + "src": "2906:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2906:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43616c6c6572206973206e6f7420616e2061646d696e", + "id": 836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2939:24:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c42e6f213cb252dbb58053bcbc469c8ef3e91890f0261efae8e5d5a1aecda226", + "typeString": "literal_string \"Caller is not an admin\"" + }, + "value": "Caller is not an admin" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c42e6f213cb252dbb58053bcbc469c8ef3e91890f0261efae8e5d5a1aecda226", + "typeString": "literal_string \"Caller is not an admin\"" + } + ], + "id": 830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2898:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2898:66:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 838, + "nodeType": "ExpressionStatement", + "src": "2898:66:2" + }, + { + "id": 839, + "nodeType": "PlaceholderStatement", + "src": "2972:1:2" + } + ] + }, + "documentation": { + "id": 828, + "nodeType": "StructuredDocumentation", + "src": "2848:18:2", + "text": "@dev Modifiers" + }, + "id": 841, + "name": "onlyAdmin", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { "id": 829, + "nodeType": "ParameterList", + "parameters": [], + "src": "2887:2:2" + }, + "src": "2869:111:2", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 860, "nodeType": "Block", - "src": "3415:46:2", + "src": "3335:46:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 825, + "id": 856, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 823, + "id": 854, "name": "roots", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "3421:5:2", + "referencedDeclaration": 722, + "src": "3341:5:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" @@ -2380,39 +2809,39 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 824, + "id": 855, "name": "rootHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 814, - "src": "3429:10:2", + "referencedDeclaration": 845, + "src": "3349:10:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "src": "3421:18:2", + "src": "3341:18:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 826, + "id": 857, "nodeType": "ExpressionStatement", - "src": "3421:18:2" + "src": "3341:18:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 827, + "id": 858, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3452:4:2", + "src": "3372:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2420,79 +2849,79 @@ }, "value": "true" }, - "functionReturnParameters": 822, - "id": 828, + "functionReturnParameters": 853, + "id": 859, "nodeType": "Return", - "src": "3445:11:2" + "src": "3365:11:2" } ] }, "documentation": { - "id": 811, + "id": 842, "nodeType": "StructuredDocumentation", - "src": "3065:245:2", + "src": "2985:245:2", "text": "@notice Set Merkle Tree Root Hashes array\n @dev Called by owner to update roots for different address batches by templateId\n @param rootHashes Root hashes of the Merkle Trees by templateId\n @return True if successfully updated" }, "functionSelector": "aca57703", - "id": 830, + "id": 861, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 817, + "id": 848, "modifierName": { "argumentTypes": null, - "id": 816, - "name": "onlyOwner", + "id": 847, + "name": "onlyAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "3376:9:2", + "referencedDeclaration": 841, + "src": "3296:9:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3376:9:2" + "src": "3296:9:2" }, { "arguments": null, - "id": 819, + "id": 850, "modifierName": { "argumentTypes": null, - "id": 818, + "id": 849, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "3386:13:2", + "referencedDeclaration": 4198, + "src": "3306:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3386:13:2" + "src": "3306:13:2" } ], "name": "setRootHashes", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 815, + "id": 846, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 814, + "id": 845, "mutability": "mutable", "name": "rootHashes", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 830, - "src": "3336:29:2", + "scope": 861, + "src": "3256:29:2", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -2501,19 +2930,19 @@ }, "typeName": { "baseType": { - "id": 812, + "id": 843, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3336:7:2", + "src": "3256:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 813, + "id": 844, "length": null, "nodeType": "ArrayTypeName", - "src": "3336:9:2", + "src": "3256:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -2523,21 +2952,21 @@ "visibility": "internal" } ], - "src": "3335:31:2" + "src": "3255:31:2" }, "returnParameters": { - "id": 822, + "id": 853, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 821, + "id": 852, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 830, - "src": "3409:4:2", + "scope": 861, + "src": "3329:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2545,10 +2974,10 @@ "typeString": "bool" }, "typeName": { - "id": 820, + "id": 851, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3409:4:2", + "src": "3329:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2558,34 +2987,34 @@ "visibility": "internal" } ], - "src": "3408:6:2" + "src": "3328:6:2" }, - "scope": 1075, - "src": "3313:148:2", + "scope": 1106, + "src": "3233:148:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 870, + "id": 901, "nodeType": "Block", - "src": "3713:129:2", + "src": "3633:129:2", "statements": [ { "assignments": [ - 841 + 872 ], "declarations": [ { "constant": false, - "id": 841, + "id": 872, "mutability": "mutable", "name": "slice", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 870, - "src": "3719:13:2", + "scope": 901, + "src": "3639:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2593,10 +3022,10 @@ "typeString": "uint256" }, "typeName": { - "id": 840, + "id": 871, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3719:7:2", + "src": "3639:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2606,18 +3035,18 @@ "visibility": "internal" } ], - "id": 846, + "id": 877, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 844, + "id": 875, "name": "guy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 833, - "src": "3743:3:2", + "referencedDeclaration": 864, + "src": "3663:3:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2633,18 +3062,18 @@ ], "expression": { "argumentTypes": null, - "id": 842, + "id": 873, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3735:3:2", + "referencedDeclaration": 742, + "src": "3655:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 843, + "id": 874, "isConstant": false, "isLValue": false, "isPure": false, @@ -2652,13 +3081,13 @@ "memberName": "pie", "nodeType": "MemberAccess", "referencedDeclaration": 648, - "src": "3735:7:2", + "src": "3655:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 845, + "id": 876, "isConstant": false, "isLValue": false, "isPure": false, @@ -2666,7 +3095,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3735:12:2", + "src": "3655:12:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2674,22 +3103,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3719:28:2" + "src": "3639:28:2" }, { "assignments": [ - 848 + 879 ], "declarations": [ { "constant": false, - "id": 848, + "id": 879, "mutability": "mutable", "name": "chi", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 870, - "src": "3753:11:2", + "scope": 901, + "src": "3673:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2697,10 +3126,10 @@ "typeString": "uint256" }, "typeName": { - "id": 847, + "id": 878, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3753:7:2", + "src": "3673:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2710,7 +3139,7 @@ "visibility": "internal" } ], - "id": 862, + "id": 893, "initialValue": { "argumentTypes": null, "condition": { @@ -2722,19 +3151,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 853, + "id": 884, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 849, + "id": 880, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -17, - "src": "3768:3:2", + "src": "3688:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2749,18 +3178,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 850, + "id": 881, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3774:3:2", + "referencedDeclaration": 742, + "src": "3694:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 851, + "id": 882, "isConstant": false, "isLValue": false, "isPure": false, @@ -2768,13 +3197,13 @@ "memberName": "rho", "nodeType": "MemberAccess", "referencedDeclaration": 658, - "src": "3774:7:2", + "src": "3694:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 852, + "id": 883, "isConstant": false, "isLValue": false, "isPure": false, @@ -2782,28 +3211,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3774:9:2", + "src": "3694:9:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3768:15:2", + "src": "3688:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 854, + "id": 885, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3767:17:2", + "src": "3687:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2816,18 +3245,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 858, + "id": 889, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3800:3:2", + "referencedDeclaration": 742, + "src": "3720:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 859, + "id": 890, "isConstant": false, "isLValue": false, "isPure": false, @@ -2835,13 +3264,13 @@ "memberName": "chi", "nodeType": "MemberAccess", "referencedDeclaration": 653, - "src": "3800:7:2", + "src": "3720:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 860, + "id": 891, "isConstant": false, "isLValue": false, "isPure": false, @@ -2849,20 +3278,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3800:9:2", + "src": "3720:9:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 861, + "id": 892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "3767:42:2", + "src": "3687:42:2", "trueExpression": { "argumentTypes": null, "arguments": [], @@ -2870,18 +3299,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 855, + "id": 886, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3787:3:2", + "referencedDeclaration": 742, + "src": "3707:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 856, + "id": 887, "isConstant": false, "isLValue": false, "isPure": false, @@ -2889,13 +3318,13 @@ "memberName": "drip", "nodeType": "MemberAccess", "referencedDeclaration": 663, - "src": "3787:8:2", + "src": "3707:8:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 857, + "id": 888, "isConstant": false, "isLValue": false, "isPure": false, @@ -2903,7 +3332,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3787:10:2", + "src": "3707:10:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2916,24 +3345,24 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3753:56:2" + "src": "3673:56:2" }, { "expression": { "argumentTypes": null, - "id": 868, + "id": 899, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 863, + "id": 894, "name": "wad", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 838, - "src": "3815:3:2", + "referencedDeclaration": 869, + "src": "3735:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2946,12 +3375,12 @@ "arguments": [ { "argumentTypes": null, - "id": 865, + "id": 896, "name": "slice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 841, - "src": "3826:5:2", + "referencedDeclaration": 872, + "src": "3746:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2959,12 +3388,12 @@ }, { "argumentTypes": null, - "id": 866, + "id": 897, "name": "chi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 848, - "src": "3833:3:2", + "referencedDeclaration": 879, + "src": "3753:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2982,18 +3411,18 @@ "typeString": "uint256" } ], - "id": 864, + "id": 895, "name": "rmul", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "3821:4:2", + "referencedDeclaration": 773, + "src": "3741:4:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) view returns (uint256)" } }, - "id": 867, + "id": 898, "isConstant": false, "isLValue": false, "isPure": false, @@ -3001,71 +3430,71 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3821:16:2", + "src": "3741:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3815:22:2", + "src": "3735:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 869, + "id": 900, "nodeType": "ExpressionStatement", - "src": "3815:22:2" + "src": "3735:22:2" } ] }, "documentation": { - "id": 831, + "id": 862, "nodeType": "StructuredDocumentation", - "src": "3465:169:2", + "src": "3385:169:2", "text": "@notice Return the accrued interest of guy on Pot\n @dev Based on Chai dai() function\n @param guy Address to check\n @return wad Accrued interest of guy" }, - "id": 871, + "id": 902, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 836, + "id": 867, "modifierName": { "argumentTypes": null, - "id": 835, + "id": 866, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "3677:13:2", + "referencedDeclaration": 4198, + "src": "3597:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3677:13:2" + "src": "3597:13:2" } ], "name": "_dai", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 834, + "id": 865, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 833, + "id": 864, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 871, - "src": "3651:11:2", + "scope": 902, + "src": "3571:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3073,10 +3502,10 @@ "typeString": "address" }, "typeName": { - "id": 832, + "id": 863, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3651:7:2", + "src": "3571:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3087,21 +3516,21 @@ "visibility": "internal" } ], - "src": "3650:13:2" + "src": "3570:13:2" }, "returnParameters": { - "id": 839, + "id": 870, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 838, + "id": 869, "mutability": "mutable", "name": "wad", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 871, - "src": "3700:11:2", + "scope": 902, + "src": "3620:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3109,10 +3538,10 @@ "typeString": "uint256" }, "typeName": { - "id": 837, + "id": 868, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3700:7:2", + "src": "3620:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3122,19 +3551,19 @@ "visibility": "internal" } ], - "src": "3699:13:2" + "src": "3619:13:2" }, - "scope": 1075, - "src": "3637:205:2", + "scope": 1106, + "src": "3557:205:2", "stateMutability": "view", "virtual": false, "visibility": "private" }, { "body": { - "id": 918, + "id": 949, "nodeType": "Block", - "src": "4094:266:2", + "src": "4014:266:2", "statements": [ { "expression": { @@ -3146,7 +3575,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 887, + "id": 918, "isConstant": false, "isLValue": false, "isPure": false, @@ -3158,18 +3587,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 883, + "id": 914, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4113:3:2", + "src": "4033:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 884, + "id": 915, "isConstant": false, "isLValue": false, "isPure": false, @@ -3177,7 +3606,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4113:10:2", + "src": "4033:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3191,18 +3620,18 @@ "typeString": "address payable" } ], - "id": 882, + "id": 913, "name": "_dai", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 871, - "src": "4108:4:2", + "referencedDeclaration": 902, + "src": "4028:4:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 885, + "id": 916, "isConstant": false, "isLValue": false, "isPure": false, @@ -3210,7 +3639,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4108:16:2", + "src": "4028:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3222,14 +3651,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 886, + "id": 917, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4128:7:2", + "src": "4048:7:2", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", @@ -3237,7 +3666,7 @@ }, "value": "1" }, - "src": "4108:27:2", + "src": "4028:27:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3246,14 +3675,14 @@ { "argumentTypes": null, "hexValue": "43616c6c657220686173206e6f7420616363727565642031206f72206d6f72652044616920696e746572657374206f6e20506f74", - "id": 888, + "id": 919, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4137:54:2", + "src": "4057:54:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_94e2bcffd09237077ab7bf5d72c9dbecf83833ba747ce44f2fb8b96ffffa64a1", @@ -3273,7 +3702,7 @@ "typeString": "literal_string \"Caller has not accrued 1 or more Dai interest on Pot\"" } ], - "id": 881, + "id": 912, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3281,13 +3710,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4100:7:2", + "src": "4020:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 889, + "id": 920, "isConstant": false, "isLValue": false, "isPure": false, @@ -3295,21 +3724,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4100:92:2", + "src": "4020:92:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 890, + "id": 921, "nodeType": "ExpressionStatement", - "src": "4100:92:2" + "src": "4020:92:2" }, { "condition": { "argumentTypes": null, - "id": 898, + "id": 929, "isConstant": false, "isLValue": false, "isPure": false, @@ -3317,7 +3746,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4202:43:2", + "src": "4122:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -3325,18 +3754,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 895, + "id": 926, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4234:3:2", + "src": "4154:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 896, + "id": 927, "isConstant": false, "isLValue": false, "isPure": false, @@ -3344,7 +3773,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4234:10:2", + "src": "4154:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3362,26 +3791,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 891, + "id": 922, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4203:9:2", + "referencedDeclaration": 726, + "src": "4123:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 893, + "id": 924, "indexExpression": { "argumentTypes": null, - "id": 892, + "id": 923, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "4213:10:2", + "referencedDeclaration": 905, + "src": "4133:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3392,27 +3821,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4203:21:2", + "src": "4123:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 894, + "id": 925, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "4203:30:2", + "referencedDeclaration": 4016, + "src": "4123:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 897, + "id": 928, "isConstant": false, "isLValue": false, "isPure": false, @@ -3420,7 +3849,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4203:42:2", + "src": "4123:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3433,13 +3862,13 @@ } }, "falseBody": null, - "id": 910, + "id": 941, "nodeType": "IfStatement", - "src": "4198:108:2", + "src": "4118:108:2", "trueBody": { - "id": 909, + "id": 940, "nodeType": "Block", - "src": "4247:59:2", + "src": "4167:59:2", "statements": [ { "expression": { @@ -3452,18 +3881,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 904, + "id": 935, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4287:3:2", + "src": "4207:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 905, + "id": 936, "isConstant": false, "isLValue": false, "isPure": false, @@ -3471,7 +3900,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4287:10:2", + "src": "4207:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3489,26 +3918,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 900, + "id": 931, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4261:9:2", + "referencedDeclaration": 726, + "src": "4181:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 902, + "id": 933, "indexExpression": { "argumentTypes": null, - "id": 901, + "id": 932, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "4271:10:2", + "referencedDeclaration": 905, + "src": "4191:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3519,27 +3948,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4261:21:2", + "src": "4181:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 903, + "id": 934, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "4261:25:2", + "referencedDeclaration": 3970, + "src": "4181:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 906, + "id": 937, "isConstant": false, "isLValue": false, "isPure": false, @@ -3547,7 +3976,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4261:37:2", + "src": "4181:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3562,7 +3991,7 @@ "typeString": "bool" } ], - "id": 899, + "id": 930, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3570,13 +3999,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4253:7:2", + "src": "4173:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 907, + "id": 938, "isConstant": false, "isLValue": false, "isPure": false, @@ -3584,16 +4013,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4253:46:2", + "src": "4173:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 908, + "id": 939, "nodeType": "ExpressionStatement", - "src": "4253:46:2" + "src": "4173:46:2" } ] } @@ -3606,18 +4035,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 912, + "id": 943, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4327:3:2", + "src": "4247:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 913, + "id": 944, "isConstant": false, "isLValue": false, "isPure": false, @@ -3625,7 +4054,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4327:10:2", + "src": "4247:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3639,18 +4068,18 @@ "typeString": "address payable" } ], - "id": 911, + "id": 942, "name": "PotChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 726, - "src": "4316:10:2", + "referencedDeclaration": 731, + "src": "4236:10:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 914, + "id": 945, "isConstant": false, "isLValue": false, "isPure": false, @@ -3658,29 +4087,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4316:22:2", + "src": "4236:22:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 915, + "id": 946, "nodeType": "EmitStatement", - "src": "4311:27:2" + "src": "4231:27:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 916, + "id": 947, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4351:4:2", + "src": "4271:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3688,60 +4117,60 @@ }, "value": "true" }, - "functionReturnParameters": 880, - "id": 917, + "functionReturnParameters": 911, + "id": 948, "nodeType": "Return", - "src": "4344:11:2" + "src": "4264:11:2" } ] }, "documentation": { - "id": 872, + "id": 903, "nodeType": "StructuredDocumentation", - "src": "3846:165:2", + "src": "3766:165:2", "text": "@notice Pot Challenge\n @dev Keeps track of the address of the caller if successful\n @return True if the caller successfully checked for activity on Pot" }, "functionSelector": "baf2868b", - "id": 919, + "id": 950, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 877, + "id": 908, "modifierName": { "argumentTypes": null, - "id": 876, + "id": 907, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "4065:13:2", + "referencedDeclaration": 4198, + "src": "3985:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4065:13:2" + "src": "3985:13:2" } ], "name": "potChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 875, + "id": 906, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 874, + "id": 905, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 919, - "src": "4036:18:2", + "scope": 950, + "src": "3956:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3749,10 +4178,10 @@ "typeString": "uint256" }, "typeName": { - "id": 873, + "id": 904, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4036:7:2", + "src": "3956:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3762,21 +4191,21 @@ "visibility": "internal" } ], - "src": "4035:20:2" + "src": "3955:20:2" }, "returnParameters": { - "id": 880, + "id": 911, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 879, + "id": 910, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 919, - "src": "4088:4:2", + "scope": 950, + "src": "4008:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3784,10 +4213,10 @@ "typeString": "bool" }, "typeName": { - "id": 878, + "id": 909, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4088:4:2", + "src": "4008:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3797,19 +4226,19 @@ "visibility": "internal" } ], - "src": "4087:6:2" + "src": "4007:6:2" }, - "scope": 1075, - "src": "4014:346:2", + "scope": 1106, + "src": "3934:346:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 967, + "id": 998, "nodeType": "Block", - "src": "4622:263:2", + "src": "4542:264:2", "statements": [ { "expression": { @@ -3821,7 +4250,7 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 936, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, @@ -3833,18 +4262,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 932, + "id": 963, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4648:3:2", + "src": "4568:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 933, + "id": 964, "isConstant": false, "isLValue": false, "isPure": false, @@ -3852,7 +4281,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4648:10:2", + "src": "4568:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3868,18 +4297,18 @@ ], "expression": { "argumentTypes": null, - "id": 930, + "id": 961, "name": "chief", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "4636:5:2", + "referencedDeclaration": 744, + "src": "4556:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "id": 931, + "id": 962, "isConstant": false, "isLValue": false, "isPure": false, @@ -3887,13 +4316,13 @@ "memberName": "votes", "nodeType": "MemberAccess", "referencedDeclaration": 671, - "src": "4636:11:2", + "src": "4556:11:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$", "typeString": "function (address) view external returns (bytes32)" } }, - "id": 934, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, @@ -3901,7 +4330,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4636:23:2", + "src": "4556:23:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3913,14 +4342,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783030", - "id": 935, + "id": 966, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4663:4:2", + "src": "4583:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3928,7 +4357,7 @@ }, "value": "0x00" }, - "src": "4636:31:2", + "src": "4556:31:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3936,21 +4365,21 @@ }, { "argumentTypes": null, - "hexValue": "43616c6c6572206973206e6f7420766f74696e6720696e206120476f7665726e616e636520506f6c6c", - "id": 937, + "hexValue": "43616c6c6572206973206e6f7420766f74696e6720696e20616e20457865637574697665205370656c6c", + "id": 968, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4669:43:2", + "src": "4589:44:2", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_67b208a9b43a5545a1a8888c99a64b4cd7f58aa52580dee6f4ec112b3e80c46b", - "typeString": "literal_string \"Caller is not voting in a Governance Poll\"" + "typeIdentifier": "t_stringliteral_65880bfcd366c16deddf50d8f8606d011e26303e9f1a09e543bd3e08c12c2544", + "typeString": "literal_string \"Caller is not voting in an Executive Spell\"" }, - "value": "Caller is not voting in a Governance Poll" + "value": "Caller is not voting in an Executive Spell" } ], "expression": { @@ -3960,11 +4389,11 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_67b208a9b43a5545a1a8888c99a64b4cd7f58aa52580dee6f4ec112b3e80c46b", - "typeString": "literal_string \"Caller is not voting in a Governance Poll\"" + "typeIdentifier": "t_stringliteral_65880bfcd366c16deddf50d8f8606d011e26303e9f1a09e543bd3e08c12c2544", + "typeString": "literal_string \"Caller is not voting in an Executive Spell\"" } ], - "id": 929, + "id": 960, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3972,13 +4401,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4628:7:2", + "src": "4548:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 938, + "id": 969, "isConstant": false, "isLValue": false, "isPure": false, @@ -3986,21 +4415,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4628:85:2", + "src": "4548:86:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 939, + "id": 970, "nodeType": "ExpressionStatement", - "src": "4628:85:2" + "src": "4548:86:2" }, { "condition": { "argumentTypes": null, - "id": 947, + "id": 978, "isConstant": false, "isLValue": false, "isPure": false, @@ -4008,7 +4437,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4723:43:2", + "src": "4644:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -4016,18 +4445,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 944, + "id": 975, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4755:3:2", + "src": "4676:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 945, + "id": 976, "isConstant": false, "isLValue": false, "isPure": false, @@ -4035,7 +4464,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4755:10:2", + "src": "4676:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4053,26 +4482,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 940, + "id": 971, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4724:9:2", + "referencedDeclaration": 726, + "src": "4645:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 942, + "id": 973, "indexExpression": { "argumentTypes": null, - "id": 941, + "id": 972, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "4734:10:2", + "referencedDeclaration": 953, + "src": "4655:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4083,27 +4512,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4724:21:2", + "src": "4645:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 943, + "id": 974, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "4724:30:2", + "referencedDeclaration": 4016, + "src": "4645:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 946, + "id": 977, "isConstant": false, "isLValue": false, "isPure": false, @@ -4111,7 +4540,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4724:42:2", + "src": "4645:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4124,13 +4553,13 @@ } }, "falseBody": null, - "id": 959, + "id": 990, "nodeType": "IfStatement", - "src": "4719:108:2", + "src": "4640:108:2", "trueBody": { - "id": 958, + "id": 989, "nodeType": "Block", - "src": "4768:59:2", + "src": "4689:59:2", "statements": [ { "expression": { @@ -4143,18 +4572,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 953, + "id": 984, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4808:3:2", + "src": "4729:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 954, + "id": 985, "isConstant": false, "isLValue": false, "isPure": false, @@ -4162,7 +4591,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4808:10:2", + "src": "4729:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4180,26 +4609,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 949, + "id": 980, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4782:9:2", + "referencedDeclaration": 726, + "src": "4703:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 951, + "id": 982, "indexExpression": { "argumentTypes": null, - "id": 950, + "id": 981, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "4792:10:2", + "referencedDeclaration": 953, + "src": "4713:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4210,27 +4639,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4782:21:2", + "src": "4703:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 952, + "id": 983, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "4782:25:2", + "referencedDeclaration": 3970, + "src": "4703:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 955, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, @@ -4238,7 +4667,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4782:37:2", + "src": "4703:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4253,7 +4682,7 @@ "typeString": "bool" } ], - "id": 948, + "id": 979, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4261,13 +4690,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4774:7:2", + "src": "4695:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 956, + "id": 987, "isConstant": false, "isLValue": false, "isPure": false, @@ -4275,16 +4704,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4774:46:2", + "src": "4695:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 957, + "id": 988, "nodeType": "ExpressionStatement", - "src": "4774:46:2" + "src": "4695:46:2" } ] } @@ -4297,18 +4726,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 961, + "id": 992, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4852:3:2", + "src": "4773:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 962, + "id": 993, "isConstant": false, "isLValue": false, "isPure": false, @@ -4316,7 +4745,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4852:10:2", + "src": "4773:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4330,18 +4759,18 @@ "typeString": "address payable" } ], - "id": 960, + "id": 991, "name": "DSChiefChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "4837:14:2", + "referencedDeclaration": 735, + "src": "4758:14:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 963, + "id": 994, "isConstant": false, "isLValue": false, "isPure": false, @@ -4349,29 +4778,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4837:26:2", + "src": "4758:26:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 964, + "id": 995, "nodeType": "EmitStatement", - "src": "4832:31:2" + "src": "4753:31:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 965, + "id": 996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4876:4:2", + "src": "4797:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4379,60 +4808,60 @@ }, "value": "true" }, - "functionReturnParameters": 928, - "id": 966, + "functionReturnParameters": 959, + "id": 997, "nodeType": "Return", - "src": "4869:11:2" + "src": "4790:11:2" } ] }, "documentation": { - "id": 920, + "id": 951, "nodeType": "StructuredDocumentation", - "src": "4364:173:2", + "src": "4284:173:2", "text": "@notice DSChief Challenge\n @dev Keeps track of the address of the caller if successful\n @return True if the caller successfully checked for activity on DSChief" }, "functionSelector": "f36618a6", - "id": 968, + "id": 999, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 925, + "id": 956, "modifierName": { "argumentTypes": null, - "id": 924, + "id": 955, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "4593:13:2", + "referencedDeclaration": 4198, + "src": "4513:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4593:13:2" + "src": "4513:13:2" } ], "name": "chiefChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 923, + "id": 954, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 922, + "id": 953, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 968, - "src": "4564:18:2", + "scope": 999, + "src": "4484:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4440,10 +4869,10 @@ "typeString": "uint256" }, "typeName": { - "id": 921, + "id": 952, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4564:7:2", + "src": "4484:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4453,21 +4882,21 @@ "visibility": "internal" } ], - "src": "4563:20:2" + "src": "4483:20:2" }, "returnParameters": { - "id": 928, + "id": 959, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 927, + "id": 958, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 968, - "src": "4616:4:2", + "scope": 999, + "src": "4536:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4475,10 +4904,10 @@ "typeString": "bool" }, "typeName": { - "id": 926, + "id": 957, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4616:4:2", + "src": "4536:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4488,19 +4917,19 @@ "visibility": "internal" } ], - "src": "4615:6:2" + "src": "4535:6:2" }, - "scope": 1075, - "src": "4540:345:2", + "scope": 1106, + "src": "4460:346:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1019, + "id": 1050, "nodeType": "Block", - "src": "5192:299:2", + "src": "5113:299:2", "statements": [ { "expression": { @@ -4512,7 +4941,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 988, + "id": 1019, "isConstant": false, "isLValue": false, "isPure": false, @@ -4524,12 +4953,12 @@ "arguments": [ { "argumentTypes": null, - "id": 983, + "id": 1014, "name": "bidId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "5219:5:2", + "referencedDeclaration": 1004, + "src": "5140:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4545,18 +4974,18 @@ ], "expression": { "argumentTypes": null, - "id": 981, + "id": 1012, "name": "flipper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "5206:7:2", + "referencedDeclaration": 746, + "src": "5127:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" } }, - "id": 982, + "id": 1013, "isConstant": false, "isLValue": false, "isPure": false, @@ -4564,13 +4993,13 @@ "memberName": "bids", "nodeType": "MemberAccess", "referencedDeclaration": 696, - "src": "5206:12:2", + "src": "5127:12:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Bid_$689_memory_ptr_$", "typeString": "function (uint256) view external returns (struct FlipperLike.Bid memory)" } }, - "id": 984, + "id": 1015, "isConstant": false, "isLValue": false, "isPure": false, @@ -4578,14 +5007,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5206:19:2", + "src": "5127:19:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Bid_$689_memory_ptr", "typeString": "struct FlipperLike.Bid memory" } }, - "id": 985, + "id": 1016, "isConstant": false, "isLValue": true, "isPure": false, @@ -4593,7 +5022,7 @@ "memberName": "guy", "nodeType": "MemberAccess", "referencedDeclaration": 678, - "src": "5206:23:2", + "src": "5127:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4605,18 +5034,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 986, + "id": 1017, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5233:3:2", + "src": "5154:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 987, + "id": 1018, "isConstant": false, "isLValue": false, "isPure": false, @@ -4624,13 +5053,13 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5233:10:2", + "src": "5154:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "5206:37:2", + "src": "5127:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4639,14 +5068,14 @@ { "argumentTypes": null, "hexValue": "43616c6c6572206973206e6f742074686520686967682062696464657220696e207468652063757272656e742042696420696e20436f6c6c61746572616c2041756374696f6e73", - "id": 989, + "id": 1020, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5245:73:2", + "src": "5166:73:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e88b03e76bc82122d18e72f0c400e240eb0423ded12b22b77672909d807e7840", @@ -4666,7 +5095,7 @@ "typeString": "literal_string \"Caller is not the high bidder in the current Bid in Collateral Auctions\"" } ], - "id": 980, + "id": 1011, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4674,13 +5103,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5198:7:2", + "src": "5119:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 990, + "id": 1021, "isConstant": false, "isLValue": false, "isPure": false, @@ -4688,21 +5117,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5198:121:2", + "src": "5119:121:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 991, + "id": 1022, "nodeType": "ExpressionStatement", - "src": "5198:121:2" + "src": "5119:121:2" }, { "condition": { "argumentTypes": null, - "id": 999, + "id": 1030, "isConstant": false, "isLValue": false, "isPure": false, @@ -4710,7 +5139,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5329:43:2", + "src": "5250:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -4718,18 +5147,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 996, + "id": 1027, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5361:3:2", + "src": "5282:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 997, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, @@ -4737,7 +5166,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5361:10:2", + "src": "5282:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4755,26 +5184,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 992, + "id": 1023, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5330:9:2", + "referencedDeclaration": 726, + "src": "5251:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 994, + "id": 1025, "indexExpression": { "argumentTypes": null, - "id": 993, + "id": 1024, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5340:10:2", + "referencedDeclaration": 1002, + "src": "5261:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4785,27 +5214,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5330:21:2", + "src": "5251:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 995, + "id": 1026, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "5330:30:2", + "referencedDeclaration": 4016, + "src": "5251:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 998, + "id": 1029, "isConstant": false, "isLValue": false, "isPure": false, @@ -4813,7 +5242,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5330:42:2", + "src": "5251:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4826,13 +5255,13 @@ } }, "falseBody": null, - "id": 1011, + "id": 1042, "nodeType": "IfStatement", - "src": "5325:108:2", + "src": "5246:108:2", "trueBody": { - "id": 1010, + "id": 1041, "nodeType": "Block", - "src": "5374:59:2", + "src": "5295:59:2", "statements": [ { "expression": { @@ -4845,18 +5274,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1005, + "id": 1036, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5414:3:2", + "src": "5335:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1006, + "id": 1037, "isConstant": false, "isLValue": false, "isPure": false, @@ -4864,7 +5293,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5414:10:2", + "src": "5335:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4882,26 +5311,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1001, + "id": 1032, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5388:9:2", + "referencedDeclaration": 726, + "src": "5309:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 1003, + "id": 1034, "indexExpression": { "argumentTypes": null, - "id": 1002, + "id": 1033, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5398:10:2", + "referencedDeclaration": 1002, + "src": "5319:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4912,27 +5341,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5388:21:2", + "src": "5309:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1004, + "id": 1035, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "5388:25:2", + "referencedDeclaration": 3970, + "src": "5309:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 1007, + "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, @@ -4940,7 +5369,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5388:37:2", + "src": "5309:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4955,7 +5384,7 @@ "typeString": "bool" } ], - "id": 1000, + "id": 1031, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4963,13 +5392,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5380:7:2", + "src": "5301:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1008, + "id": 1039, "isConstant": false, "isLValue": false, "isPure": false, @@ -4977,16 +5406,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5380:46:2", + "src": "5301:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1009, + "id": 1040, "nodeType": "ExpressionStatement", - "src": "5380:46:2" + "src": "5301:46:2" } ] } @@ -4999,18 +5428,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1013, + "id": 1044, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5458:3:2", + "src": "5379:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1014, + "id": 1045, "isConstant": false, "isLValue": false, "isPure": false, @@ -5018,7 +5447,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5458:10:2", + "src": "5379:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5032,18 +5461,18 @@ "typeString": "address payable" } ], - "id": 1012, + "id": 1043, "name": "FlipperChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 734, - "src": "5443:14:2", + "referencedDeclaration": 739, + "src": "5364:14:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1015, + "id": 1046, "isConstant": false, "isLValue": false, "isPure": false, @@ -5051,29 +5480,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5443:26:2", + "src": "5364:26:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1016, + "id": 1047, "nodeType": "EmitStatement", - "src": "5438:31:2" + "src": "5359:31:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 1017, + "id": 1048, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5482:4:2", + "src": "5403:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5081,60 +5510,60 @@ }, "value": "true" }, - "functionReturnParameters": 979, - "id": 1018, + "functionReturnParameters": 1010, + "id": 1049, "nodeType": "Return", - "src": "5475:11:2" + "src": "5396:11:2" } ] }, "documentation": { - "id": 969, + "id": 1000, "nodeType": "StructuredDocumentation", - "src": "4889:201:2", + "src": "4810:201:2", "text": "@notice Flipper Challenge\n @dev Keeps track of the address of the caller if successful\n @dev guy, high bidder\n @return True if the caller successfully checked for activity on Flipper" }, "functionSelector": "9c1c94fd", - "id": 1020, + "id": 1051, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 976, + "id": 1007, "modifierName": { "argumentTypes": null, - "id": 975, + "id": 1006, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "5163:13:2", + "referencedDeclaration": 4198, + "src": "5084:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5163:13:2" + "src": "5084:13:2" } ], "name": "flipperChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 974, + "id": 1005, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 971, + "id": 1002, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5119:18:2", + "scope": 1051, + "src": "5040:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5142,10 +5571,10 @@ "typeString": "uint256" }, "typeName": { - "id": 970, + "id": 1001, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5119:7:2", + "src": "5040:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5156,13 +5585,13 @@ }, { "constant": false, - "id": 973, + "id": 1004, "mutability": "mutable", "name": "bidId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5139:13:2", + "scope": 1051, + "src": "5060:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5170,10 +5599,10 @@ "typeString": "uint256" }, "typeName": { - "id": 972, + "id": 1003, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5139:7:2", + "src": "5060:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5183,21 +5612,21 @@ "visibility": "internal" } ], - "src": "5118:35:2" + "src": "5039:35:2" }, "returnParameters": { - "id": 979, + "id": 1010, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 978, + "id": 1009, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5186:4:2", + "scope": 1051, + "src": "5107:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5205,10 +5634,10 @@ "typeString": "bool" }, "typeName": { - "id": 977, + "id": 1008, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5186:4:2", + "src": "5107:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5218,19 +5647,19 @@ "visibility": "internal" } ], - "src": "5185:6:2" + "src": "5106:6:2" }, - "scope": 1075, - "src": "5093:398:2", + "scope": 1106, + "src": "5014:398:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1039, + "id": 1070, "nodeType": "Block", - "src": "5750:53:2", + "src": "5671:53:2", "statements": [ { "expression": { @@ -5238,12 +5667,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1036, + "id": 1067, "name": "guy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "5794:3:2", + "referencedDeclaration": 1056, + "src": "5715:3:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5261,26 +5690,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1032, + "id": 1063, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5763:9:2", + "referencedDeclaration": 726, + "src": "5684:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 1034, + "id": 1065, "indexExpression": { "argumentTypes": null, - "id": 1033, + "id": 1064, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "5773:10:2", + "referencedDeclaration": 1054, + "src": "5694:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5291,27 +5720,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5763:21:2", + "src": "5684:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1035, + "id": 1066, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "5763:30:2", + "referencedDeclaration": 4016, + "src": "5684:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 1037, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, @@ -5319,67 +5748,67 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5763:35:2", + "src": "5684:35:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1031, - "id": 1038, + "functionReturnParameters": 1062, + "id": 1069, "nodeType": "Return", - "src": "5756:42:2" + "src": "5677:42:2" } ] }, "documentation": { - "id": 1021, + "id": 1052, "nodeType": "StructuredDocumentation", - "src": "5495:160:2", + "src": "5416:160:2", "text": "@notice Check if guy is a redeemer\n @dev Verify if the address of guy exists\n @param guy Address to verify\n @return True if guy is a redeemer" }, "functionSelector": "ebfa62b9", - "id": 1040, + "id": 1071, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1028, + "id": 1059, "modifierName": { "argumentTypes": null, - "id": 1027, + "id": 1058, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "5721:13:2", + "referencedDeclaration": 4198, + "src": "5642:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5721:13:2" + "src": "5642:13:2" } ], "name": "verify", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1026, + "id": 1057, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1023, + "id": 1054, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5674:18:2", + "scope": 1071, + "src": "5595:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5387,10 +5816,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1022, + "id": 1053, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5674:7:2", + "src": "5595:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5401,13 +5830,13 @@ }, { "constant": false, - "id": 1025, + "id": 1056, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5694:11:2", + "scope": 1071, + "src": "5615:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5415,10 +5844,10 @@ "typeString": "address" }, "typeName": { - "id": 1024, + "id": 1055, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5694:7:2", + "src": "5615:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5429,21 +5858,21 @@ "visibility": "internal" } ], - "src": "5673:33:2" + "src": "5594:33:2" }, "returnParameters": { - "id": 1031, + "id": 1062, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1030, + "id": 1061, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5744:4:2", + "scope": 1071, + "src": "5665:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5451,10 +5880,10 @@ "typeString": "bool" }, "typeName": { - "id": 1029, + "id": 1060, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5744:4:2", + "src": "5665:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5464,19 +5893,19 @@ "visibility": "internal" } ], - "src": "5743:6:2" + "src": "5664:6:2" }, - "scope": 1075, - "src": "5658:145:2", + "scope": 1106, + "src": "5579:145:2", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 1056, + "id": 1087, "nodeType": "Block", - "src": "5921:113:2", + "src": "5842:113:2", "statements": [ { "expression": { @@ -5487,12 +5916,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1046, + "id": 1077, "name": "PAUSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, - "src": "5943:11:2", + "referencedDeclaration": 719, + "src": "5864:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5502,18 +5931,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1047, + "id": 1078, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5956:3:2", + "src": "5877:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1048, + "id": 1079, "isConstant": false, "isLValue": false, "isPure": false, @@ -5521,7 +5950,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5956:10:2", + "src": "5877:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5539,18 +5968,18 @@ "typeString": "address payable" } ], - "id": 1045, + "id": 1076, "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, - "src": "5935:7:2", + "referencedDeclaration": 1238, + "src": "5856:7:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) view returns (bool)" } }, - "id": 1049, + "id": 1080, "isConstant": false, "isLValue": false, "isPure": false, @@ -5558,7 +5987,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5935:32:2", + "src": "5856:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5568,14 +5997,14 @@ { "argumentTypes": null, "hexValue": "4d616b65724261646765733a206d75737420686176652070617573657220726f6c6520746f207061757365", - "id": 1050, + "id": 1081, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5969:45:2", + "src": "5890:45:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d33b68c439b8482d10dd00f9785755fa4ae9979ec8a8ee9bf8b872747d1b8f67", @@ -5595,7 +6024,7 @@ "typeString": "literal_string \"MakerBadges: must have pauser role to pause\"" } ], - "id": 1044, + "id": 1075, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5603,13 +6032,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5927:7:2", + "src": "5848:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1051, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, @@ -5617,16 +6046,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5927:88:2", + "src": "5848:88:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1052, + "id": 1083, "nodeType": "ExpressionStatement", - "src": "5927:88:2" + "src": "5848:88:2" }, { "expression": { @@ -5634,18 +6063,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1053, + "id": 1084, "name": "_pause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4193, - "src": "6021:6:2", + "referencedDeclaration": 4224, + "src": "5942:6:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1054, + "id": 1085, "isConstant": false, "isLValue": false, "isPure": false, @@ -5653,27 +6082,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6021:8:2", + "src": "5942:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1055, + "id": 1086, "nodeType": "ExpressionStatement", - "src": "6021:8:2" + "src": "5942:8:2" } ] }, "documentation": { - "id": 1041, + "id": 1072, "nodeType": "StructuredDocumentation", - "src": "5807:85:2", + "src": "5728:85:2", "text": "@notice Pause all the functions\n @dev the caller must have the 'PAUSER_ROLE'" }, "functionSelector": "8456cb59", - "id": 1057, + "id": 1088, "implemented": true, "kind": "function", "modifiers": [], @@ -5681,28 +6110,28 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1042, + "id": 1073, "nodeType": "ParameterList", "parameters": [], - "src": "5909:2:2" + "src": "5830:2:2" }, "returnParameters": { - "id": 1043, + "id": 1074, "nodeType": "ParameterList", "parameters": [], - "src": "5921:0:2" + "src": "5842:0:2" }, - "scope": 1075, - "src": "5895:139:2", + "scope": 1106, + "src": "5816:139:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1073, + "id": 1104, "nodeType": "Block", - "src": "6156:127:2", + "src": "6077:127:2", "statements": [ { "expression": { @@ -5713,12 +6142,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1063, + "id": 1094, "name": "PAUSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, - "src": "6182:11:2", + "referencedDeclaration": 719, + "src": "6103:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5728,18 +6157,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1064, + "id": 1095, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "6195:3:2", + "src": "6116:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1065, + "id": 1096, "isConstant": false, "isLValue": false, "isPure": false, @@ -5747,7 +6176,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6195:10:2", + "src": "6116:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5765,18 +6194,18 @@ "typeString": "address payable" } ], - "id": 1062, + "id": 1093, "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, - "src": "6174:7:2", + "referencedDeclaration": 1238, + "src": "6095:7:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) view returns (bool)" } }, - "id": 1066, + "id": 1097, "isConstant": false, "isLValue": false, "isPure": false, @@ -5784,7 +6213,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6174:32:2", + "src": "6095:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5794,14 +6223,14 @@ { "argumentTypes": null, "hexValue": "4d616b65724261646765733a206d75737420686176652070617573657220726f6c6520746f20756e7061757365", - "id": 1067, + "id": 1098, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6208:47:2", + "src": "6129:47:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e81d67bdac033cbd58eea8cc6d19c5b2672fe1faa73f3d7c71703b8e96106b7b", @@ -5821,7 +6250,7 @@ "typeString": "literal_string \"MakerBadges: must have pauser role to unpause\"" } ], - "id": 1061, + "id": 1092, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5829,13 +6258,13 @@ -18 ], "referencedDeclaration": -18, - "src": "6166:7:2", + "src": "6087:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1068, + "id": 1099, "isConstant": false, "isLValue": false, "isPure": false, @@ -5843,16 +6272,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6166:90:2", + "src": "6087:90:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1069, + "id": 1100, "nodeType": "ExpressionStatement", - "src": "6166:90:2" + "src": "6087:90:2" }, { "expression": { @@ -5860,18 +6289,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1070, + "id": 1101, "name": "_unpause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4209, - "src": "6266:8:2", + "referencedDeclaration": 4240, + "src": "6187:8:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1071, + "id": 1102, "isConstant": false, "isLValue": false, "isPure": false, @@ -5879,27 +6308,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6266:10:2", + "src": "6187:10:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1072, + "id": 1103, "nodeType": "ExpressionStatement", - "src": "6266:10:2" + "src": "6187:10:2" } ] }, "documentation": { - "id": 1058, + "id": 1089, "nodeType": "StructuredDocumentation", - "src": "6038:87:2", + "src": "5959:87:2", "text": "@notice Unpause all the functions\n @dev the caller must have the 'PAUSER_ROLE'" }, "functionSelector": "3f4ba83a", - "id": 1074, + "id": 1105, "implemented": true, "kind": "function", "modifiers": [], @@ -5907,29 +6336,29 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1059, + "id": 1090, "nodeType": "ParameterList", "parameters": [], - "src": "6144:2:2" + "src": "6065:2:2" }, "returnParameters": { - "id": 1060, + "id": 1091, "nodeType": "ParameterList", "parameters": [], - "src": "6156:0:2" + "src": "6077:0:2" }, - "scope": 1075, - "src": "6128:155:2", + "scope": 1106, + "src": "6049:155:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 1076, - "src": "1381:4905:2" + "scope": 1107, + "src": "1381:4826:2" } ], - "src": "37:6250:2" + "src": "37:6171:2" }, "legacyAST": { "absolutePath": "/home/sencha/maker-badges/contracts/MakerBadges.sol", @@ -5941,13 +6370,13 @@ 697 ], "MakerBadges": [ - 1075 + 1106 ], "PotLike": [ 664 ] }, - "id": 1076, + "id": 1107, "license": "GPL-3.0", "nodeType": "SourceUnit", "nodes": [ @@ -5956,7 +6385,7 @@ "literals": [ "solidity", "0.6", - ".10" + ".11" ], "nodeType": "PragmaDirective", "src": "37:23:2" @@ -5975,8 +6404,8 @@ "file": "@openzeppelin/contracts/access/Ownable.sol", "id": 637, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1528, + "scope": 1107, + "sourceUnit": 1559, "src": "532:52:2", "symbolAliases": [], "unitAlias": "" @@ -5986,8 +6415,8 @@ "file": "@openzeppelin/contracts/access/AccessControl.sol", "id": 638, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1419, + "scope": 1107, + "sourceUnit": 1450, "src": "585:58:2", "symbolAliases": [], "unitAlias": "" @@ -5997,8 +6426,8 @@ "file": "@openzeppelin/contracts/utils/Pausable.sol", "id": 639, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 4211, + "scope": 1107, + "sourceUnit": 4242, "src": "644:52:2", "symbolAliases": [], "unitAlias": "" @@ -6008,8 +6437,8 @@ "file": "@openzeppelin/contracts/math/SafeMath.sol", "id": 640, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 1864, + "scope": 1107, + "sourceUnit": 1895, "src": "697:51:2", "symbolAliases": [], "unitAlias": "" @@ -6019,8 +6448,8 @@ "file": "@openzeppelin/contracts/utils/EnumerableSet.sol", "id": 641, "nodeType": "ImportDirective", - "scope": 1076, - "sourceUnit": 4121, + "scope": 1107, + "sourceUnit": 4152, "src": "749:57:2", "symbolAliases": [], "unitAlias": "" @@ -6302,7 +6731,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "808:243:2" }, { @@ -6408,7 +6837,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "1053:84:2" }, { @@ -6753,7 +7182,7 @@ "visibility": "external" } ], - "scope": 1076, + "scope": 1107, "src": "1139:240:2" }, { @@ -6766,10 +7195,10 @@ "id": 698, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1527, + "referencedDeclaration": 1558, "src": "1405:7:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$1527", + "typeIdentifier": "t_contract$_Ownable_$1558", "typeString": "contract Ownable" } }, @@ -6784,10 +7213,10 @@ "id": 700, "name": "AccessControl", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1418, + "referencedDeclaration": 1449, "src": "1414:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_AccessControl_$1418", + "typeIdentifier": "t_contract$_AccessControl_$1449", "typeString": "contract AccessControl" } }, @@ -6802,10 +7231,10 @@ "id": 702, "name": "Pausable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4210, + "referencedDeclaration": 4241, "src": "1429:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pausable_$4210", + "typeIdentifier": "t_contract$_Pausable_$4241", "typeString": "contract Pausable" } }, @@ -6815,21 +7244,21 @@ } ], "contractDependencies": [ - 1135, - 1418, - 1527, - 4210 + 1166, + 1449, + 1558, + 4241 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1075, + "id": 1106, "linearizedBaseContracts": [ - 1075, - 4210, - 1418, - 1527, - 1135 + 1106, + 4241, + 1449, + 1558, + 1166 ], "name": "MakerBadges", "nodeType": "ContractDefinition", @@ -6841,10 +7270,10 @@ "id": 704, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1863, + "referencedDeclaration": 1894, "src": "1470:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1863", + "typeIdentifier": "t_contract$_SafeMath_$1894", "typeString": "library SafeMath" } }, @@ -6868,38 +7297,121 @@ "id": 707, "name": "EnumerableSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4120, + "referencedDeclaration": 4151, "src": "1500:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_EnumerableSet_$4120", + "typeIdentifier": "t_contract$_EnumerableSet_$4151", "typeString": "library EnumerableSet" } }, - "nodeType": "UsingForDirective", - "src": "1494:49:2", - "typeName": { - "contractScope": null, - "id": 708, - "name": "EnumerableSet.AddressSet", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, - "src": "1518:24:2", + "nodeType": "UsingForDirective", + "src": "1494:49:2", + "typeName": { + "contractScope": null, + "id": 708, + "name": "EnumerableSet.AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3947, + "src": "1518:24:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + } + }, + { + "constant": true, + "functionSelector": "75b238fc", + "id": 714, + "mutability": "constant", + "name": "ADMIN_ROLE", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1106, + "src": "1547:60:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 710, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1547:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "41444d494e5f524f4c45", + "id": 712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1594:12:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", + "typeString": "literal_string \"ADMIN_ROLE\"" + }, + "value": "ADMIN_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", + "typeString": "literal_string \"ADMIN_ROLE\"" + } + ], + "id": 711, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1584:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1584:23:2", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", - "typeString": "struct EnumerableSet.AddressSet" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } - } + }, + "visibility": "public" }, { "constant": true, "functionSelector": "e63ab1e9", - "id": 714, + "id": 719, "mutability": "constant", "name": "PAUSER_ROLE", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1547:62:2", + "scope": 1106, + "src": "1611:62:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -6907,10 +7419,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 710, + "id": 715, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1547:7:2", + "src": "1611:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6922,14 +7434,14 @@ { "argumentTypes": null, "hexValue": "5041555345525f524f4c45", - "id": 712, + "id": 717, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1595:13:2", + "src": "1659:13:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a", @@ -6945,18 +7457,18 @@ "typeString": "literal_string \"PAUSER_ROLE\"" } ], - "id": 711, + "id": 716, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "1585:9:2", + "src": "1649:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 713, + "id": 718, "isConstant": false, "isLValue": false, "isPure": true, @@ -6964,7 +7476,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1585:24:2", + "src": "1649:24:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6976,13 +7488,13 @@ { "constant": false, "functionSelector": "c2b40ae4", - "id": 717, + "id": 722, "mutability": "mutable", "name": "roots", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1614:22:2", + "scope": 1106, + "src": "1678:22:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -6991,19 +7503,19 @@ }, "typeName": { "baseType": { - "id": 715, + "id": 720, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1614:7:2", + "src": "1678:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 716, + "id": 721, "length": null, "nodeType": "ArrayTypeName", - "src": "1614:9:2", + "src": "1678:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -7014,46 +7526,46 @@ }, { "constant": false, - "id": 721, + "id": 726, "mutability": "mutable", "name": "redeemers", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1641:63:2", + "scope": 1106, + "src": "1705:63:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet)" }, "typeName": { - "id": 720, + "id": 725, "keyType": { - "id": 718, + "id": 723, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1650:7:2", + "src": "1714:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "1641:45:2", + "src": "1705:45:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet)" }, "valueType": { "contractScope": null, - "id": 719, + "id": 724, "name": "EnumerableSet.AddressSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3916, - "src": "1661:24:2", + "referencedDeclaration": 3947, + "src": "1725:24:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } } @@ -7064,28 +7576,28 @@ { "anonymous": false, "documentation": { - "id": 722, + "id": 727, "nodeType": "StructuredDocumentation", - "src": "1709:15:2", + "src": "1773:15:2", "text": "@dev Events" }, - "id": 726, + "id": 731, "name": "PotChecked", "nodeType": "EventDefinition", "parameters": { - "id": 725, + "id": 730, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 724, + "id": 729, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 726, - "src": "1744:11:2", + "scope": 731, + "src": "1808:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7093,10 +7605,10 @@ "typeString": "address" }, "typeName": { - "id": 723, + "id": 728, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1744:7:2", + "src": "1808:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7107,30 +7619,30 @@ "visibility": "internal" } ], - "src": "1743:13:2" + "src": "1807:13:2" }, - "src": "1727:30:2" + "src": "1791:30:2" }, { "anonymous": false, "documentation": null, - "id": 730, + "id": 735, "name": "DSChiefChecked", "nodeType": "EventDefinition", "parameters": { - "id": 729, + "id": 734, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 728, + "id": 733, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 730, - "src": "1781:11:2", + "scope": 735, + "src": "1845:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7138,10 +7650,10 @@ "typeString": "address" }, "typeName": { - "id": 727, + "id": 732, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1781:7:2", + "src": "1845:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7152,30 +7664,30 @@ "visibility": "internal" } ], - "src": "1780:13:2" + "src": "1844:13:2" }, - "src": "1760:34:2" + "src": "1824:34:2" }, { "anonymous": false, "documentation": null, - "id": 734, + "id": 739, "name": "FlipperChecked", "nodeType": "EventDefinition", "parameters": { - "id": 733, + "id": 738, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 732, + "id": 737, "indexed": false, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 734, - "src": "1818:11:2", + "scope": 739, + "src": "1882:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7183,10 +7695,10 @@ "typeString": "address" }, "typeName": { - "id": 731, + "id": 736, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1818:7:2", + "src": "1882:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7197,25 +7709,25 @@ "visibility": "internal" } ], - "src": "1817:13:2" + "src": "1881:13:2" }, - "src": "1797:34:2" + "src": "1861:34:2" }, { "constant": false, "documentation": { - "id": 735, + "id": 740, "nodeType": "StructuredDocumentation", - "src": "1835:13:2", + "src": "1899:13:2", "text": "@dev Data" }, - "id": 737, + "id": 742, "mutability": "immutable", "name": "pot", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1851:31:2", + "scope": 1106, + "src": "1915:31:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -7224,11 +7736,11 @@ }, "typeName": { "contractScope": null, - "id": 736, + "id": 741, "name": "PotLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 664, - "src": "1851:7:2", + "src": "1915:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" @@ -7239,13 +7751,13 @@ }, { "constant": false, - "id": 739, + "id": 744, "mutability": "immutable", "name": "chief", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1886:36:2", + "scope": 1106, + "src": "1950:36:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -7254,11 +7766,11 @@ }, "typeName": { "contractScope": null, - "id": 738, + "id": 743, "name": "DSChiefLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 672, - "src": "1886:11:2", + "src": "1950:11:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" @@ -7269,13 +7781,13 @@ }, { "constant": false, - "id": 741, + "id": 746, "mutability": "immutable", "name": "flipper", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1926:38:2", + "scope": 1106, + "src": "1990:38:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -7284,11 +7796,11 @@ }, "typeName": { "contractScope": null, - "id": 740, + "id": 745, "name": "FlipperLike", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 697, - "src": "1926:11:2", + "src": "1990:11:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" @@ -7300,18 +7812,18 @@ { "constant": true, "documentation": { - "id": 742, + "id": 747, "nodeType": "StructuredDocumentation", - "src": "1969:13:2", + "src": "2033:13:2", "text": "@dev Math" }, - "id": 747, + "id": 752, "mutability": "constant", "name": "RAY", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1075, - "src": "1985:31:2", + "scope": 1106, + "src": "2049:31:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -7319,10 +7831,10 @@ "typeString": "uint256" }, "typeName": { - "id": 743, + "id": 748, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1985:7:2", + "src": "2049:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7334,7 +7846,7 @@ "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" }, - "id": 746, + "id": 751, "isConstant": false, "isLValue": false, "isPure": true, @@ -7342,14 +7854,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 744, + "id": 749, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2008:2:2", + "src": "2072:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -7362,14 +7874,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3237", - "id": 745, + "id": 750, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2014:2:2", + "src": "2078:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_27_by_1", @@ -7377,7 +7889,7 @@ }, "value": "27" }, - "src": "2008:8:2", + "src": "2072:8:2", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" @@ -7387,26 +7899,26 @@ }, { "body": { - "id": 767, + "id": 772, "nodeType": "Block", - "src": "2105:73:2", + "src": "2169:73:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 765, + "id": 770, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 758, + "id": 763, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 756, - "src": "2155:1:2", + "referencedDeclaration": 761, + "src": "2219:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7420,7 +7932,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 764, + "id": 769, "isConstant": false, "isLValue": false, "isPure": false, @@ -7430,12 +7942,12 @@ "arguments": [ { "argumentTypes": null, - "id": 761, + "id": 766, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 751, - "src": "2165:1:2", + "referencedDeclaration": 756, + "src": "2229:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7451,32 +7963,32 @@ ], "expression": { "argumentTypes": null, - "id": 759, + "id": 764, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "2159:1:2", + "referencedDeclaration": 754, + "src": "2223:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 760, + "id": 765, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 1776, - "src": "2159:5:2", + "referencedDeclaration": 1807, + "src": "2223:5: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": 762, + "id": 767, "isConstant": false, "isLValue": false, "isPure": false, @@ -7484,7 +7996,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2159:8:2", + "src": "2223:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7495,76 +8007,76 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 763, + "id": 768, "name": "RAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 747, - "src": "2170:3:2", + "referencedDeclaration": 752, + "src": "2234:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2159:14:2", + "src": "2223:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2155:18:2", + "src": "2219:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 766, + "id": 771, "nodeType": "ExpressionStatement", - "src": "2155:18:2" + "src": "2219:18:2" } ] }, "documentation": null, - "id": 768, + "id": 773, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 754, + "id": 759, "modifierName": { "argumentTypes": null, - "id": 753, + "id": 758, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "2071:13:2", + "referencedDeclaration": 4198, + "src": "2135:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2071:13:2" + "src": "2135:13:2" } ], "name": "rmul", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 752, + "id": 757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 749, + "id": 754, "mutability": "mutable", "name": "x", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2035:9:2", + "scope": 773, + "src": "2099:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7572,10 +8084,10 @@ "typeString": "uint256" }, "typeName": { - "id": 748, + "id": 753, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2035:7:2", + "src": "2099:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7586,13 +8098,13 @@ }, { "constant": false, - "id": 751, + "id": 756, "mutability": "mutable", "name": "y", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2046:9:2", + "scope": 773, + "src": "2110:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7600,10 +8112,10 @@ "typeString": "uint256" }, "typeName": { - "id": 750, + "id": 755, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2046:7:2", + "src": "2110:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7613,21 +8125,21 @@ "visibility": "internal" } ], - "src": "2034:22:2" + "src": "2098:22:2" }, "returnParameters": { - "id": 757, + "id": 762, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 756, + "id": 761, "mutability": "mutable", "name": "z", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 768, - "src": "2094:9:2", + "scope": 773, + "src": "2158:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7635,10 +8147,10 @@ "typeString": "uint256" }, "typeName": { - "id": 755, + "id": 760, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2094:7:2", + "src": "2158:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7648,19 +8160,19 @@ "visibility": "internal" } ], - "src": "2093:11:2" + "src": "2157:11:2" }, - "scope": 1075, - "src": "2021:157:2", + "scope": 1106, + "src": "2085:157:2", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 801, + "id": 818, "nodeType": "Block", - "src": "2203:682:2", + "src": "2313:355:2", "statements": [ { "expression": { @@ -7668,12 +8180,12 @@ "arguments": [ { "argumentTypes": null, - "id": 772, + "id": 783, "name": "DEFAULT_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1161, - "src": "2224:18:2", + "referencedDeclaration": 1192, + "src": "2334:18:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7684,18 +8196,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 773, + "id": 784, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "2244:5:2", + "referencedDeclaration": 1494, + "src": "2354:5:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 774, + "id": 785, "isConstant": false, "isLValue": false, "isPure": false, @@ -7703,7 +8215,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2244:7:2", + "src": "2354:7:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7722,18 +8234,18 @@ "typeString": "address" } ], - "id": 771, + "id": 782, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "2213:10:2", + "referencedDeclaration": 1375, + "src": "2323:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 775, + "id": 786, "isConstant": false, "isLValue": false, "isPure": false, @@ -7741,16 +8253,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2213:39:2", + "src": "2323:39:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 776, + "id": 787, "nodeType": "ExpressionStatement", - "src": "2213:39:2" + "src": "2323:39:2" }, { "expression": { @@ -7758,12 +8270,102 @@ "arguments": [ { "argumentTypes": null, - "id": 778, - "name": "PAUSER_ROLE", + "id": 789, + "name": "ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 714, - "src": "2274:11:2", + "src": "2384:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 790, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "2396:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2396:7:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 788, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1375, + "src": "2373:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2373:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 793, + "nodeType": "ExpressionStatement", + "src": "2373:31:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 795, + "name": "PAUSER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 719, + "src": "2425:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7774,18 +8376,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 779, + "id": 796, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "2287:5:2", + "referencedDeclaration": 1494, + "src": "2438:5:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 780, + "id": 797, "isConstant": false, "isLValue": false, "isPure": false, @@ -7793,7 +8395,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2287:7:2", + "src": "2438:7:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7812,18 +8414,18 @@ "typeString": "address" } ], - "id": 777, + "id": 794, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "2263:10:2", + "referencedDeclaration": 1375, + "src": "2414:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 781, + "id": 798, "isConstant": false, "isLValue": false, "isPure": false, @@ -7831,33 +8433,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2263:32:2", + "src": "2414:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 782, + "id": 799, "nodeType": "ExpressionStatement", - "src": "2263:32:2" + "src": "2414:32:2" }, { "expression": { "argumentTypes": null, - "id": 787, + "id": 804, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 783, + "id": 800, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "2421:3:2", + "referencedDeclaration": 742, + "src": "2490:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" @@ -7870,82 +8472,77 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307845413139304442444337616446323635323630656334644136653936373546643466354137386262", - "id": 785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2435:42:2", - "subdenomination": null, + "id": 802, + "name": "pot_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 775, + "src": "2504:4:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xEA190DBDC7adF265260ec4dA6e9675Fd4f5A78bb" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 784, + "id": 801, "name": "PotLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 664, - "src": "2427:7:2", + "src": "2496:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_PotLike_$664_$", "typeString": "type(contract PotLike)" } }, - "id": 786, + "id": 803, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2427:51:2", + "src": "2496:13:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "src": "2421:57:2", + "src": "2490:19:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 788, + "id": 805, "nodeType": "ExpressionStatement", - "src": "2421:57:2" + "src": "2490:19:2" }, { "expression": { "argumentTypes": null, - "id": 793, + "id": 810, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 789, + "id": 806, "name": "chief", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "2611:5:2", + "referencedDeclaration": 744, + "src": "2553:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" @@ -7958,82 +8555,77 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307862424646433736653934423334463732443936443035346233316636343234323439633133333764", - "id": 791, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2631:42:2", - "subdenomination": null, + "id": 808, + "name": "chief_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 777, + "src": "2573:6:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xbBFFC76e94B34F72D96D054b31f6424249c1337d" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 790, + "id": 807, "name": "DSChiefLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 672, - "src": "2619:11:2", + "src": "2561:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DSChiefLike_$672_$", "typeString": "type(contract DSChiefLike)" } }, - "id": 792, + "id": 809, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2619:55:2", + "src": "2561:19:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "src": "2611:63:2", + "src": "2553:27:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "id": 794, + "id": 811, "nodeType": "ExpressionStatement", - "src": "2611:63:2" + "src": "2553:27:2" }, { "expression": { "argumentTypes": null, - "id": 799, + "id": 816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 795, + "id": 812, "name": "flipper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "2814:7:2", + "referencedDeclaration": 746, + "src": "2631:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" @@ -8046,99 +8638,182 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "307842343031333945613336443335643043394636613265363236303142363136463146666242443162", - "id": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2836:42:2", - "subdenomination": null, + "id": 814, + "name": "flipper_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "2653:8:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xB40139Ea36D35d0C9F6a2e62601B616F1FfbBD1b" + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 796, + "id": 813, "name": "FlipperLike", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 697, - "src": "2824:11:2", + "src": "2641:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FlipperLike_$697_$", "typeString": "type(contract FlipperLike)" } }, - "id": 798, + "id": 815, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2824:55:2", + "src": "2641:21:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" } }, - "src": "2814:65:2", + "src": "2631:31:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_FlipperLike_$697", + "typeString": "contract FlipperLike" + } + }, + "id": 817, + "nodeType": "ExpressionStatement", + "src": "2631:31:2" + } + ] + }, + "documentation": null, + "id": 819, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 780, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 775, + "mutability": "mutable", + "name": "pot_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2258:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 774, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2258:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 777, + "mutability": "mutable", + "name": "chief_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2272:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 776, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2272:7:2", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_contract$_FlipperLike_$697", - "typeString": "contract FlipperLike" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 800, - "nodeType": "ExpressionStatement", - "src": "2814:65:2" + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 779, + "mutability": "mutable", + "name": "flipper_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 819, + "src": "2288:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2288:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" } - ] - }, - "documentation": null, - "id": 802, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 769, - "nodeType": "ParameterList", - "parameters": [], - "src": "2193:2:2" + ], + "src": "2257:48:2" }, "returnParameters": { - "id": 770, + "id": 781, "nodeType": "ParameterList", "parameters": [], - "src": "2203:0:2" + "src": "2313:0:2" }, - "scope": 1075, - "src": "2182:703:2", + "scope": 1106, + "src": "2246:422:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 809, + "id": 826, "nodeType": "Block", - "src": "3042:19:2", + "src": "2825:19:2", "statements": [ { "expression": { @@ -8146,7 +8821,7 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 806, + "id": 823, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -8154,13 +8829,13 @@ -19 ], "referencedDeclaration": -19, - "src": "3048:6:2", + "src": "2831:6:2", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 807, + "id": 824, "isConstant": false, "isLValue": false, "isPure": false, @@ -8168,26 +8843,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3048:8:2", + "src": "2831:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 808, + "id": 825, "nodeType": "ExpressionStatement", - "src": "3048:8:2" + "src": "2831:8:2" } ] }, "documentation": { - "id": 803, + "id": 820, "nodeType": "StructuredDocumentation", - "src": "2889:130:2", + "src": "2672:130:2", "text": "@notice Fallback function\n @dev Added not payable to revert transactions not matching any other function which send value" }, - "id": 810, + "id": 827, "implemented": true, "kind": "fallback", "modifiers": [], @@ -8195,45 +8870,228 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 804, + "id": 821, "nodeType": "ParameterList", "parameters": [], - "src": "3030:2:2" + "src": "2813:2:2" }, "returnParameters": { - "id": 805, + "id": 822, "nodeType": "ParameterList", "parameters": [], - "src": "3042:0:2" + "src": "2825:0:2" }, - "scope": 1075, - "src": "3022:39:2", + "scope": 1106, + "src": "2805:39:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { + "id": 840, + "nodeType": "Block", + "src": "2890:90:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 832, + "name": "ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 714, + "src": "2914:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 833, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2926:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2926:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 831, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1238, + "src": "2906:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2906:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43616c6c6572206973206e6f7420616e2061646d696e", + "id": 836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2939:24:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c42e6f213cb252dbb58053bcbc469c8ef3e91890f0261efae8e5d5a1aecda226", + "typeString": "literal_string \"Caller is not an admin\"" + }, + "value": "Caller is not an admin" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c42e6f213cb252dbb58053bcbc469c8ef3e91890f0261efae8e5d5a1aecda226", + "typeString": "literal_string \"Caller is not an admin\"" + } + ], + "id": 830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2898:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2898:66:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 838, + "nodeType": "ExpressionStatement", + "src": "2898:66:2" + }, + { + "id": 839, + "nodeType": "PlaceholderStatement", + "src": "2972:1:2" + } + ] + }, + "documentation": { + "id": 828, + "nodeType": "StructuredDocumentation", + "src": "2848:18:2", + "text": "@dev Modifiers" + }, + "id": 841, + "name": "onlyAdmin", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { "id": 829, + "nodeType": "ParameterList", + "parameters": [], + "src": "2887:2:2" + }, + "src": "2869:111:2", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 860, "nodeType": "Block", - "src": "3415:46:2", + "src": "3335:46:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 825, + "id": 856, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 823, + "id": 854, "name": "roots", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "3421:5:2", + "referencedDeclaration": 722, + "src": "3341:5:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" @@ -8243,39 +9101,39 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 824, + "id": 855, "name": "rootHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 814, - "src": "3429:10:2", + "referencedDeclaration": 845, + "src": "3349:10:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "src": "3421:18:2", + "src": "3341:18:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 826, + "id": 857, "nodeType": "ExpressionStatement", - "src": "3421:18:2" + "src": "3341:18:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 827, + "id": 858, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3452:4:2", + "src": "3372:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -8283,79 +9141,79 @@ }, "value": "true" }, - "functionReturnParameters": 822, - "id": 828, + "functionReturnParameters": 853, + "id": 859, "nodeType": "Return", - "src": "3445:11:2" + "src": "3365:11:2" } ] }, "documentation": { - "id": 811, + "id": 842, "nodeType": "StructuredDocumentation", - "src": "3065:245:2", + "src": "2985:245:2", "text": "@notice Set Merkle Tree Root Hashes array\n @dev Called by owner to update roots for different address batches by templateId\n @param rootHashes Root hashes of the Merkle Trees by templateId\n @return True if successfully updated" }, "functionSelector": "aca57703", - "id": 830, + "id": 861, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 817, + "id": 848, "modifierName": { "argumentTypes": null, - "id": 816, - "name": "onlyOwner", + "id": 847, + "name": "onlyAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "3376:9:2", + "referencedDeclaration": 841, + "src": "3296:9:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3376:9:2" + "src": "3296:9:2" }, { "arguments": null, - "id": 819, + "id": 850, "modifierName": { "argumentTypes": null, - "id": 818, + "id": 849, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "3386:13:2", + "referencedDeclaration": 4198, + "src": "3306:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3386:13:2" + "src": "3306:13:2" } ], "name": "setRootHashes", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 815, + "id": 846, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 814, + "id": 845, "mutability": "mutable", "name": "rootHashes", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 830, - "src": "3336:29:2", + "scope": 861, + "src": "3256:29:2", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -8364,19 +9222,19 @@ }, "typeName": { "baseType": { - "id": 812, + "id": 843, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3336:7:2", + "src": "3256:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 813, + "id": 844, "length": null, "nodeType": "ArrayTypeName", - "src": "3336:9:2", + "src": "3256:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -8386,21 +9244,21 @@ "visibility": "internal" } ], - "src": "3335:31:2" + "src": "3255:31:2" }, "returnParameters": { - "id": 822, + "id": 853, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 821, + "id": 852, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 830, - "src": "3409:4:2", + "scope": 861, + "src": "3329:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8408,10 +9266,10 @@ "typeString": "bool" }, "typeName": { - "id": 820, + "id": 851, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3409:4:2", + "src": "3329:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8421,34 +9279,34 @@ "visibility": "internal" } ], - "src": "3408:6:2" + "src": "3328:6:2" }, - "scope": 1075, - "src": "3313:148:2", + "scope": 1106, + "src": "3233:148:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 870, + "id": 901, "nodeType": "Block", - "src": "3713:129:2", + "src": "3633:129:2", "statements": [ { "assignments": [ - 841 + 872 ], "declarations": [ { "constant": false, - "id": 841, + "id": 872, "mutability": "mutable", "name": "slice", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 870, - "src": "3719:13:2", + "scope": 901, + "src": "3639:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8456,10 +9314,10 @@ "typeString": "uint256" }, "typeName": { - "id": 840, + "id": 871, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3719:7:2", + "src": "3639:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8469,18 +9327,18 @@ "visibility": "internal" } ], - "id": 846, + "id": 877, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 844, + "id": 875, "name": "guy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 833, - "src": "3743:3:2", + "referencedDeclaration": 864, + "src": "3663:3:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8496,18 +9354,18 @@ ], "expression": { "argumentTypes": null, - "id": 842, + "id": 873, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3735:3:2", + "referencedDeclaration": 742, + "src": "3655:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 843, + "id": 874, "isConstant": false, "isLValue": false, "isPure": false, @@ -8515,13 +9373,13 @@ "memberName": "pie", "nodeType": "MemberAccess", "referencedDeclaration": 648, - "src": "3735:7:2", + "src": "3655:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 845, + "id": 876, "isConstant": false, "isLValue": false, "isPure": false, @@ -8529,7 +9387,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3735:12:2", + "src": "3655:12:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8537,22 +9395,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3719:28:2" + "src": "3639:28:2" }, { "assignments": [ - 848 + 879 ], "declarations": [ { "constant": false, - "id": 848, + "id": 879, "mutability": "mutable", "name": "chi", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 870, - "src": "3753:11:2", + "scope": 901, + "src": "3673:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8560,10 +9418,10 @@ "typeString": "uint256" }, "typeName": { - "id": 847, + "id": 878, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3753:7:2", + "src": "3673:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8573,7 +9431,7 @@ "visibility": "internal" } ], - "id": 862, + "id": 893, "initialValue": { "argumentTypes": null, "condition": { @@ -8585,19 +9443,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 853, + "id": 884, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 849, + "id": 880, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -17, - "src": "3768:3:2", + "src": "3688:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8612,18 +9470,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 850, + "id": 881, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3774:3:2", + "referencedDeclaration": 742, + "src": "3694:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 851, + "id": 882, "isConstant": false, "isLValue": false, "isPure": false, @@ -8631,13 +9489,13 @@ "memberName": "rho", "nodeType": "MemberAccess", "referencedDeclaration": 658, - "src": "3774:7:2", + "src": "3694:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 852, + "id": 883, "isConstant": false, "isLValue": false, "isPure": false, @@ -8645,28 +9503,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3774:9:2", + "src": "3694:9:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3768:15:2", + "src": "3688:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 854, + "id": 885, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3767:17:2", + "src": "3687:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8679,18 +9537,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 858, + "id": 889, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3800:3:2", + "referencedDeclaration": 742, + "src": "3720:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 859, + "id": 890, "isConstant": false, "isLValue": false, "isPure": false, @@ -8698,13 +9556,13 @@ "memberName": "chi", "nodeType": "MemberAccess", "referencedDeclaration": 653, - "src": "3800:7:2", + "src": "3720:7:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 860, + "id": 891, "isConstant": false, "isLValue": false, "isPure": false, @@ -8712,20 +9570,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3800:9:2", + "src": "3720:9:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 861, + "id": 892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "3767:42:2", + "src": "3687:42:2", "trueExpression": { "argumentTypes": null, "arguments": [], @@ -8733,18 +9591,18 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 855, + "id": 886, "name": "pot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "3787:3:2", + "referencedDeclaration": 742, + "src": "3707:3:2", "typeDescriptions": { "typeIdentifier": "t_contract$_PotLike_$664", "typeString": "contract PotLike" } }, - "id": 856, + "id": 887, "isConstant": false, "isLValue": false, "isPure": false, @@ -8752,13 +9610,13 @@ "memberName": "drip", "nodeType": "MemberAccess", "referencedDeclaration": 663, - "src": "3787:8:2", + "src": "3707:8:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 857, + "id": 888, "isConstant": false, "isLValue": false, "isPure": false, @@ -8766,7 +9624,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3787:10:2", + "src": "3707:10:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8779,24 +9637,24 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3753:56:2" + "src": "3673:56:2" }, { "expression": { "argumentTypes": null, - "id": 868, + "id": 899, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 863, + "id": 894, "name": "wad", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 838, - "src": "3815:3:2", + "referencedDeclaration": 869, + "src": "3735:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8809,12 +9667,12 @@ "arguments": [ { "argumentTypes": null, - "id": 865, + "id": 896, "name": "slice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 841, - "src": "3826:5:2", + "referencedDeclaration": 872, + "src": "3746:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8822,12 +9680,12 @@ }, { "argumentTypes": null, - "id": 866, + "id": 897, "name": "chi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 848, - "src": "3833:3:2", + "referencedDeclaration": 879, + "src": "3753:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8845,18 +9703,18 @@ "typeString": "uint256" } ], - "id": 864, + "id": 895, "name": "rmul", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "3821:4:2", + "referencedDeclaration": 773, + "src": "3741:4:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) view returns (uint256)" } }, - "id": 867, + "id": 898, "isConstant": false, "isLValue": false, "isPure": false, @@ -8864,71 +9722,71 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3821:16:2", + "src": "3741:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3815:22:2", + "src": "3735:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 869, + "id": 900, "nodeType": "ExpressionStatement", - "src": "3815:22:2" + "src": "3735:22:2" } ] }, "documentation": { - "id": 831, + "id": 862, "nodeType": "StructuredDocumentation", - "src": "3465:169:2", + "src": "3385:169:2", "text": "@notice Return the accrued interest of guy on Pot\n @dev Based on Chai dai() function\n @param guy Address to check\n @return wad Accrued interest of guy" }, - "id": 871, + "id": 902, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 836, + "id": 867, "modifierName": { "argumentTypes": null, - "id": 835, + "id": 866, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "3677:13:2", + "referencedDeclaration": 4198, + "src": "3597:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3677:13:2" + "src": "3597:13:2" } ], "name": "_dai", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 834, + "id": 865, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 833, + "id": 864, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 871, - "src": "3651:11:2", + "scope": 902, + "src": "3571:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8936,10 +9794,10 @@ "typeString": "address" }, "typeName": { - "id": 832, + "id": 863, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3651:7:2", + "src": "3571:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8950,21 +9808,21 @@ "visibility": "internal" } ], - "src": "3650:13:2" + "src": "3570:13:2" }, "returnParameters": { - "id": 839, + "id": 870, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 838, + "id": 869, "mutability": "mutable", "name": "wad", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 871, - "src": "3700:11:2", + "scope": 902, + "src": "3620:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8972,10 +9830,10 @@ "typeString": "uint256" }, "typeName": { - "id": 837, + "id": 868, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3700:7:2", + "src": "3620:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8985,19 +9843,19 @@ "visibility": "internal" } ], - "src": "3699:13:2" + "src": "3619:13:2" }, - "scope": 1075, - "src": "3637:205:2", + "scope": 1106, + "src": "3557:205:2", "stateMutability": "view", "virtual": false, "visibility": "private" }, { "body": { - "id": 918, + "id": 949, "nodeType": "Block", - "src": "4094:266:2", + "src": "4014:266:2", "statements": [ { "expression": { @@ -9009,7 +9867,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 887, + "id": 918, "isConstant": false, "isLValue": false, "isPure": false, @@ -9021,18 +9879,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 883, + "id": 914, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4113:3:2", + "src": "4033:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 884, + "id": 915, "isConstant": false, "isLValue": false, "isPure": false, @@ -9040,7 +9898,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4113:10:2", + "src": "4033:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9054,18 +9912,18 @@ "typeString": "address payable" } ], - "id": 882, + "id": 913, "name": "_dai", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 871, - "src": "4108:4:2", + "referencedDeclaration": 902, + "src": "4028:4:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 885, + "id": 916, "isConstant": false, "isLValue": false, "isPure": false, @@ -9073,7 +9931,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4108:16:2", + "src": "4028:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9085,14 +9943,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 886, + "id": 917, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4128:7:2", + "src": "4048:7:2", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", @@ -9100,7 +9958,7 @@ }, "value": "1" }, - "src": "4108:27:2", + "src": "4028:27:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9109,14 +9967,14 @@ { "argumentTypes": null, "hexValue": "43616c6c657220686173206e6f7420616363727565642031206f72206d6f72652044616920696e746572657374206f6e20506f74", - "id": 888, + "id": 919, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4137:54:2", + "src": "4057:54:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_94e2bcffd09237077ab7bf5d72c9dbecf83833ba747ce44f2fb8b96ffffa64a1", @@ -9136,7 +9994,7 @@ "typeString": "literal_string \"Caller has not accrued 1 or more Dai interest on Pot\"" } ], - "id": 881, + "id": 912, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -9144,13 +10002,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4100:7:2", + "src": "4020:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 889, + "id": 920, "isConstant": false, "isLValue": false, "isPure": false, @@ -9158,21 +10016,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4100:92:2", + "src": "4020:92:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 890, + "id": 921, "nodeType": "ExpressionStatement", - "src": "4100:92:2" + "src": "4020:92:2" }, { "condition": { "argumentTypes": null, - "id": 898, + "id": 929, "isConstant": false, "isLValue": false, "isPure": false, @@ -9180,7 +10038,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4202:43:2", + "src": "4122:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -9188,18 +10046,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 895, + "id": 926, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4234:3:2", + "src": "4154:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 896, + "id": 927, "isConstant": false, "isLValue": false, "isPure": false, @@ -9207,7 +10065,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4234:10:2", + "src": "4154:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9225,26 +10083,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 891, + "id": 922, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4203:9:2", + "referencedDeclaration": 726, + "src": "4123:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 893, + "id": 924, "indexExpression": { "argumentTypes": null, - "id": 892, + "id": 923, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "4213:10:2", + "referencedDeclaration": 905, + "src": "4133:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9255,27 +10113,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4203:21:2", + "src": "4123:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 894, + "id": 925, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "4203:30:2", + "referencedDeclaration": 4016, + "src": "4123:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 897, + "id": 928, "isConstant": false, "isLValue": false, "isPure": false, @@ -9283,7 +10141,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4203:42:2", + "src": "4123:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9296,13 +10154,13 @@ } }, "falseBody": null, - "id": 910, + "id": 941, "nodeType": "IfStatement", - "src": "4198:108:2", + "src": "4118:108:2", "trueBody": { - "id": 909, + "id": 940, "nodeType": "Block", - "src": "4247:59:2", + "src": "4167:59:2", "statements": [ { "expression": { @@ -9315,18 +10173,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 904, + "id": 935, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4287:3:2", + "src": "4207:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 905, + "id": 936, "isConstant": false, "isLValue": false, "isPure": false, @@ -9334,7 +10192,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4287:10:2", + "src": "4207:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9352,26 +10210,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 900, + "id": 931, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4261:9:2", + "referencedDeclaration": 726, + "src": "4181:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 902, + "id": 933, "indexExpression": { "argumentTypes": null, - "id": 901, + "id": 932, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "4271:10:2", + "referencedDeclaration": 905, + "src": "4191:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9382,27 +10240,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4261:21:2", + "src": "4181:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 903, + "id": 934, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "4261:25:2", + "referencedDeclaration": 3970, + "src": "4181:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 906, + "id": 937, "isConstant": false, "isLValue": false, "isPure": false, @@ -9410,7 +10268,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4261:37:2", + "src": "4181:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9425,7 +10283,7 @@ "typeString": "bool" } ], - "id": 899, + "id": 930, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -9433,13 +10291,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4253:7:2", + "src": "4173:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 907, + "id": 938, "isConstant": false, "isLValue": false, "isPure": false, @@ -9447,16 +10305,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4253:46:2", + "src": "4173:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 908, + "id": 939, "nodeType": "ExpressionStatement", - "src": "4253:46:2" + "src": "4173:46:2" } ] } @@ -9469,18 +10327,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 912, + "id": 943, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4327:3:2", + "src": "4247:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 913, + "id": 944, "isConstant": false, "isLValue": false, "isPure": false, @@ -9488,7 +10346,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4327:10:2", + "src": "4247:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9502,18 +10360,18 @@ "typeString": "address payable" } ], - "id": 911, + "id": 942, "name": "PotChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 726, - "src": "4316:10:2", + "referencedDeclaration": 731, + "src": "4236:10:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 914, + "id": 945, "isConstant": false, "isLValue": false, "isPure": false, @@ -9521,29 +10379,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4316:22:2", + "src": "4236:22:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 915, + "id": 946, "nodeType": "EmitStatement", - "src": "4311:27:2" + "src": "4231:27:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 916, + "id": 947, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4351:4:2", + "src": "4271:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9551,60 +10409,60 @@ }, "value": "true" }, - "functionReturnParameters": 880, - "id": 917, + "functionReturnParameters": 911, + "id": 948, "nodeType": "Return", - "src": "4344:11:2" + "src": "4264:11:2" } ] }, "documentation": { - "id": 872, + "id": 903, "nodeType": "StructuredDocumentation", - "src": "3846:165:2", + "src": "3766:165:2", "text": "@notice Pot Challenge\n @dev Keeps track of the address of the caller if successful\n @return True if the caller successfully checked for activity on Pot" }, "functionSelector": "baf2868b", - "id": 919, + "id": 950, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 877, + "id": 908, "modifierName": { "argumentTypes": null, - "id": 876, + "id": 907, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "4065:13:2", + "referencedDeclaration": 4198, + "src": "3985:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4065:13:2" + "src": "3985:13:2" } ], "name": "potChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 875, + "id": 906, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 874, + "id": 905, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 919, - "src": "4036:18:2", + "scope": 950, + "src": "3956:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9612,10 +10470,10 @@ "typeString": "uint256" }, "typeName": { - "id": 873, + "id": 904, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4036:7:2", + "src": "3956:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9625,21 +10483,21 @@ "visibility": "internal" } ], - "src": "4035:20:2" + "src": "3955:20:2" }, "returnParameters": { - "id": 880, + "id": 911, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 879, + "id": 910, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 919, - "src": "4088:4:2", + "scope": 950, + "src": "4008:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9647,10 +10505,10 @@ "typeString": "bool" }, "typeName": { - "id": 878, + "id": 909, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4088:4:2", + "src": "4008:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9660,19 +10518,19 @@ "visibility": "internal" } ], - "src": "4087:6:2" + "src": "4007:6:2" }, - "scope": 1075, - "src": "4014:346:2", + "scope": 1106, + "src": "3934:346:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 967, + "id": 998, "nodeType": "Block", - "src": "4622:263:2", + "src": "4542:264:2", "statements": [ { "expression": { @@ -9684,7 +10542,7 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 936, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, @@ -9696,18 +10554,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 932, + "id": 963, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4648:3:2", + "src": "4568:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 933, + "id": 964, "isConstant": false, "isLValue": false, "isPure": false, @@ -9715,7 +10573,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4648:10:2", + "src": "4568:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9731,18 +10589,18 @@ ], "expression": { "argumentTypes": null, - "id": 930, + "id": 961, "name": "chief", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "4636:5:2", + "referencedDeclaration": 744, + "src": "4556:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_DSChiefLike_$672", "typeString": "contract DSChiefLike" } }, - "id": 931, + "id": 962, "isConstant": false, "isLValue": false, "isPure": false, @@ -9750,13 +10608,13 @@ "memberName": "votes", "nodeType": "MemberAccess", "referencedDeclaration": 671, - "src": "4636:11:2", + "src": "4556:11:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$", "typeString": "function (address) view external returns (bytes32)" } }, - "id": 934, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, @@ -9764,7 +10622,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4636:23:2", + "src": "4556:23:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -9776,14 +10634,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783030", - "id": 935, + "id": 966, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4663:4:2", + "src": "4583:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9791,7 +10649,7 @@ }, "value": "0x00" }, - "src": "4636:31:2", + "src": "4556:31:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9799,21 +10657,21 @@ }, { "argumentTypes": null, - "hexValue": "43616c6c6572206973206e6f7420766f74696e6720696e206120476f7665726e616e636520506f6c6c", - "id": 937, + "hexValue": "43616c6c6572206973206e6f7420766f74696e6720696e20616e20457865637574697665205370656c6c", + "id": 968, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4669:43:2", + "src": "4589:44:2", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_67b208a9b43a5545a1a8888c99a64b4cd7f58aa52580dee6f4ec112b3e80c46b", - "typeString": "literal_string \"Caller is not voting in a Governance Poll\"" + "typeIdentifier": "t_stringliteral_65880bfcd366c16deddf50d8f8606d011e26303e9f1a09e543bd3e08c12c2544", + "typeString": "literal_string \"Caller is not voting in an Executive Spell\"" }, - "value": "Caller is not voting in a Governance Poll" + "value": "Caller is not voting in an Executive Spell" } ], "expression": { @@ -9823,11 +10681,11 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_67b208a9b43a5545a1a8888c99a64b4cd7f58aa52580dee6f4ec112b3e80c46b", - "typeString": "literal_string \"Caller is not voting in a Governance Poll\"" + "typeIdentifier": "t_stringliteral_65880bfcd366c16deddf50d8f8606d011e26303e9f1a09e543bd3e08c12c2544", + "typeString": "literal_string \"Caller is not voting in an Executive Spell\"" } ], - "id": 929, + "id": 960, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -9835,13 +10693,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4628:7:2", + "src": "4548:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 938, + "id": 969, "isConstant": false, "isLValue": false, "isPure": false, @@ -9849,21 +10707,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4628:85:2", + "src": "4548:86:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 939, + "id": 970, "nodeType": "ExpressionStatement", - "src": "4628:85:2" + "src": "4548:86:2" }, { "condition": { "argumentTypes": null, - "id": 947, + "id": 978, "isConstant": false, "isLValue": false, "isPure": false, @@ -9871,7 +10729,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4723:43:2", + "src": "4644:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -9879,18 +10737,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 944, + "id": 975, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4755:3:2", + "src": "4676:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 945, + "id": 976, "isConstant": false, "isLValue": false, "isPure": false, @@ -9898,7 +10756,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4755:10:2", + "src": "4676:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9916,26 +10774,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 940, + "id": 971, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4724:9:2", + "referencedDeclaration": 726, + "src": "4645:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 942, + "id": 973, "indexExpression": { "argumentTypes": null, - "id": 941, + "id": 972, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "4734:10:2", + "referencedDeclaration": 953, + "src": "4655:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9946,27 +10804,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4724:21:2", + "src": "4645:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 943, + "id": 974, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "4724:30:2", + "referencedDeclaration": 4016, + "src": "4645:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 946, + "id": 977, "isConstant": false, "isLValue": false, "isPure": false, @@ -9974,7 +10832,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4724:42:2", + "src": "4645:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9987,13 +10845,13 @@ } }, "falseBody": null, - "id": 959, + "id": 990, "nodeType": "IfStatement", - "src": "4719:108:2", + "src": "4640:108:2", "trueBody": { - "id": 958, + "id": 989, "nodeType": "Block", - "src": "4768:59:2", + "src": "4689:59:2", "statements": [ { "expression": { @@ -10006,18 +10864,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 953, + "id": 984, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4808:3:2", + "src": "4729:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 954, + "id": 985, "isConstant": false, "isLValue": false, "isPure": false, @@ -10025,7 +10883,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4808:10:2", + "src": "4729:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10043,26 +10901,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 949, + "id": 980, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4782:9:2", + "referencedDeclaration": 726, + "src": "4703:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 951, + "id": 982, "indexExpression": { "argumentTypes": null, - "id": 950, + "id": 981, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "4792:10:2", + "referencedDeclaration": 953, + "src": "4713:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10073,27 +10931,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4782:21:2", + "src": "4703:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 952, + "id": 983, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "4782:25:2", + "referencedDeclaration": 3970, + "src": "4703:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 955, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, @@ -10101,7 +10959,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4782:37:2", + "src": "4703:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10116,7 +10974,7 @@ "typeString": "bool" } ], - "id": 948, + "id": 979, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -10124,13 +10982,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4774:7:2", + "src": "4695:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 956, + "id": 987, "isConstant": false, "isLValue": false, "isPure": false, @@ -10138,16 +10996,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4774:46:2", + "src": "4695:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 957, + "id": 988, "nodeType": "ExpressionStatement", - "src": "4774:46:2" + "src": "4695:46:2" } ] } @@ -10160,18 +11018,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 961, + "id": 992, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4852:3:2", + "src": "4773:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 962, + "id": 993, "isConstant": false, "isLValue": false, "isPure": false, @@ -10179,7 +11037,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4852:10:2", + "src": "4773:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10193,18 +11051,18 @@ "typeString": "address payable" } ], - "id": 960, + "id": 991, "name": "DSChiefChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "4837:14:2", + "referencedDeclaration": 735, + "src": "4758:14:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 963, + "id": 994, "isConstant": false, "isLValue": false, "isPure": false, @@ -10212,29 +11070,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4837:26:2", + "src": "4758:26:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 964, + "id": 995, "nodeType": "EmitStatement", - "src": "4832:31:2" + "src": "4753:31:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 965, + "id": 996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4876:4:2", + "src": "4797:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10242,60 +11100,60 @@ }, "value": "true" }, - "functionReturnParameters": 928, - "id": 966, + "functionReturnParameters": 959, + "id": 997, "nodeType": "Return", - "src": "4869:11:2" + "src": "4790:11:2" } ] }, "documentation": { - "id": 920, + "id": 951, "nodeType": "StructuredDocumentation", - "src": "4364:173:2", + "src": "4284:173:2", "text": "@notice DSChief Challenge\n @dev Keeps track of the address of the caller if successful\n @return True if the caller successfully checked for activity on DSChief" }, "functionSelector": "f36618a6", - "id": 968, + "id": 999, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 925, + "id": 956, "modifierName": { "argumentTypes": null, - "id": 924, + "id": 955, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "4593:13:2", + "referencedDeclaration": 4198, + "src": "4513:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4593:13:2" + "src": "4513:13:2" } ], "name": "chiefChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 923, + "id": 954, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 922, + "id": 953, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 968, - "src": "4564:18:2", + "scope": 999, + "src": "4484:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10303,10 +11161,10 @@ "typeString": "uint256" }, "typeName": { - "id": 921, + "id": 952, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4564:7:2", + "src": "4484:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10316,21 +11174,21 @@ "visibility": "internal" } ], - "src": "4563:20:2" + "src": "4483:20:2" }, "returnParameters": { - "id": 928, + "id": 959, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 927, + "id": 958, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 968, - "src": "4616:4:2", + "scope": 999, + "src": "4536:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10338,10 +11196,10 @@ "typeString": "bool" }, "typeName": { - "id": 926, + "id": 957, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4616:4:2", + "src": "4536:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10351,19 +11209,19 @@ "visibility": "internal" } ], - "src": "4615:6:2" + "src": "4535:6:2" }, - "scope": 1075, - "src": "4540:345:2", + "scope": 1106, + "src": "4460:346:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1019, + "id": 1050, "nodeType": "Block", - "src": "5192:299:2", + "src": "5113:299:2", "statements": [ { "expression": { @@ -10375,7 +11233,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 988, + "id": 1019, "isConstant": false, "isLValue": false, "isPure": false, @@ -10387,12 +11245,12 @@ "arguments": [ { "argumentTypes": null, - "id": 983, + "id": 1014, "name": "bidId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "5219:5:2", + "referencedDeclaration": 1004, + "src": "5140:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10408,18 +11266,18 @@ ], "expression": { "argumentTypes": null, - "id": 981, + "id": 1012, "name": "flipper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "5206:7:2", + "referencedDeclaration": 746, + "src": "5127:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_FlipperLike_$697", "typeString": "contract FlipperLike" } }, - "id": 982, + "id": 1013, "isConstant": false, "isLValue": false, "isPure": false, @@ -10427,13 +11285,13 @@ "memberName": "bids", "nodeType": "MemberAccess", "referencedDeclaration": 696, - "src": "5206:12:2", + "src": "5127:12:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Bid_$689_memory_ptr_$", "typeString": "function (uint256) view external returns (struct FlipperLike.Bid memory)" } }, - "id": 984, + "id": 1015, "isConstant": false, "isLValue": false, "isPure": false, @@ -10441,14 +11299,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5206:19:2", + "src": "5127:19:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Bid_$689_memory_ptr", "typeString": "struct FlipperLike.Bid memory" } }, - "id": 985, + "id": 1016, "isConstant": false, "isLValue": true, "isPure": false, @@ -10456,7 +11314,7 @@ "memberName": "guy", "nodeType": "MemberAccess", "referencedDeclaration": 678, - "src": "5206:23:2", + "src": "5127:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10468,18 +11326,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 986, + "id": 1017, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5233:3:2", + "src": "5154:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 987, + "id": 1018, "isConstant": false, "isLValue": false, "isPure": false, @@ -10487,13 +11345,13 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5233:10:2", + "src": "5154:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "5206:37:2", + "src": "5127:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10502,14 +11360,14 @@ { "argumentTypes": null, "hexValue": "43616c6c6572206973206e6f742074686520686967682062696464657220696e207468652063757272656e742042696420696e20436f6c6c61746572616c2041756374696f6e73", - "id": 989, + "id": 1020, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5245:73:2", + "src": "5166:73:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e88b03e76bc82122d18e72f0c400e240eb0423ded12b22b77672909d807e7840", @@ -10529,7 +11387,7 @@ "typeString": "literal_string \"Caller is not the high bidder in the current Bid in Collateral Auctions\"" } ], - "id": 980, + "id": 1011, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -10537,13 +11395,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5198:7:2", + "src": "5119:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 990, + "id": 1021, "isConstant": false, "isLValue": false, "isPure": false, @@ -10551,21 +11409,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5198:121:2", + "src": "5119:121:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 991, + "id": 1022, "nodeType": "ExpressionStatement", - "src": "5198:121:2" + "src": "5119:121:2" }, { "condition": { "argumentTypes": null, - "id": 999, + "id": 1030, "isConstant": false, "isLValue": false, "isPure": false, @@ -10573,7 +11431,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5329:43:2", + "src": "5250:43:2", "subExpression": { "argumentTypes": null, "arguments": [ @@ -10581,18 +11439,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 996, + "id": 1027, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5361:3:2", + "src": "5282:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 997, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, @@ -10600,7 +11458,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5361:10:2", + "src": "5282:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10618,26 +11476,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 992, + "id": 1023, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5330:9:2", + "referencedDeclaration": 726, + "src": "5251:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 994, + "id": 1025, "indexExpression": { "argumentTypes": null, - "id": 993, + "id": 1024, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5340:10:2", + "referencedDeclaration": 1002, + "src": "5261:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10648,27 +11506,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5330:21:2", + "src": "5251:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 995, + "id": 1026, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "5330:30:2", + "referencedDeclaration": 4016, + "src": "5251:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 998, + "id": 1029, "isConstant": false, "isLValue": false, "isPure": false, @@ -10676,7 +11534,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5330:42:2", + "src": "5251:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10689,13 +11547,13 @@ } }, "falseBody": null, - "id": 1011, + "id": 1042, "nodeType": "IfStatement", - "src": "5325:108:2", + "src": "5246:108:2", "trueBody": { - "id": 1010, + "id": 1041, "nodeType": "Block", - "src": "5374:59:2", + "src": "5295:59:2", "statements": [ { "expression": { @@ -10708,18 +11566,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1005, + "id": 1036, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5414:3:2", + "src": "5335:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1006, + "id": 1037, "isConstant": false, "isLValue": false, "isPure": false, @@ -10727,7 +11585,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5414:10:2", + "src": "5335:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10745,26 +11603,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1001, + "id": 1032, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5388:9:2", + "referencedDeclaration": 726, + "src": "5309:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 1003, + "id": 1034, "indexExpression": { "argumentTypes": null, - "id": 1002, + "id": 1033, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5398:10:2", + "referencedDeclaration": 1002, + "src": "5319:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10775,27 +11633,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5388:21:2", + "src": "5309:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1004, + "id": 1035, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3939, - "src": "5388:25:2", + "referencedDeclaration": 3970, + "src": "5309:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 1007, + "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, @@ -10803,7 +11661,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5388:37:2", + "src": "5309:37:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10818,7 +11676,7 @@ "typeString": "bool" } ], - "id": 1000, + "id": 1031, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -10826,13 +11684,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5380:7:2", + "src": "5301:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1008, + "id": 1039, "isConstant": false, "isLValue": false, "isPure": false, @@ -10840,16 +11698,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5380:46:2", + "src": "5301:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1009, + "id": 1040, "nodeType": "ExpressionStatement", - "src": "5380:46:2" + "src": "5301:46:2" } ] } @@ -10862,18 +11720,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1013, + "id": 1044, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5458:3:2", + "src": "5379:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1014, + "id": 1045, "isConstant": false, "isLValue": false, "isPure": false, @@ -10881,7 +11739,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5458:10:2", + "src": "5379:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10895,18 +11753,18 @@ "typeString": "address payable" } ], - "id": 1012, + "id": 1043, "name": "FlipperChecked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 734, - "src": "5443:14:2", + "referencedDeclaration": 739, + "src": "5364:14:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1015, + "id": 1046, "isConstant": false, "isLValue": false, "isPure": false, @@ -10914,29 +11772,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5443:26:2", + "src": "5364:26:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1016, + "id": 1047, "nodeType": "EmitStatement", - "src": "5438:31:2" + "src": "5359:31:2" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 1017, + "id": 1048, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5482:4:2", + "src": "5403:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10944,60 +11802,60 @@ }, "value": "true" }, - "functionReturnParameters": 979, - "id": 1018, + "functionReturnParameters": 1010, + "id": 1049, "nodeType": "Return", - "src": "5475:11:2" + "src": "5396:11:2" } ] }, "documentation": { - "id": 969, + "id": 1000, "nodeType": "StructuredDocumentation", - "src": "4889:201:2", + "src": "4810:201:2", "text": "@notice Flipper Challenge\n @dev Keeps track of the address of the caller if successful\n @dev guy, high bidder\n @return True if the caller successfully checked for activity on Flipper" }, "functionSelector": "9c1c94fd", - "id": 1020, + "id": 1051, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 976, + "id": 1007, "modifierName": { "argumentTypes": null, - "id": 975, + "id": 1006, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "5163:13:2", + "referencedDeclaration": 4198, + "src": "5084:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5163:13:2" + "src": "5084:13:2" } ], "name": "flipperChallenge", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 974, + "id": 1005, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 971, + "id": 1002, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5119:18:2", + "scope": 1051, + "src": "5040:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11005,10 +11863,10 @@ "typeString": "uint256" }, "typeName": { - "id": 970, + "id": 1001, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5119:7:2", + "src": "5040:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11019,13 +11877,13 @@ }, { "constant": false, - "id": 973, + "id": 1004, "mutability": "mutable", "name": "bidId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5139:13:2", + "scope": 1051, + "src": "5060:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11033,10 +11891,10 @@ "typeString": "uint256" }, "typeName": { - "id": 972, + "id": 1003, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5139:7:2", + "src": "5060:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11046,21 +11904,21 @@ "visibility": "internal" } ], - "src": "5118:35:2" + "src": "5039:35:2" }, "returnParameters": { - "id": 979, + "id": 1010, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 978, + "id": 1009, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1020, - "src": "5186:4:2", + "scope": 1051, + "src": "5107:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11068,10 +11926,10 @@ "typeString": "bool" }, "typeName": { - "id": 977, + "id": 1008, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5186:4:2", + "src": "5107:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11081,19 +11939,19 @@ "visibility": "internal" } ], - "src": "5185:6:2" + "src": "5106:6:2" }, - "scope": 1075, - "src": "5093:398:2", + "scope": 1106, + "src": "5014:398:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1039, + "id": 1070, "nodeType": "Block", - "src": "5750:53:2", + "src": "5671:53:2", "statements": [ { "expression": { @@ -11101,12 +11959,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1036, + "id": 1067, "name": "guy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "5794:3:2", + "referencedDeclaration": 1056, + "src": "5715:3:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11124,26 +11982,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1032, + "id": 1063, "name": "redeemers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "5763:9:2", + "referencedDeclaration": 726, + "src": "5684:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3916_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$3947_storage_$", "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)" } }, - "id": 1034, + "id": 1065, "indexExpression": { "argumentTypes": null, - "id": 1033, + "id": 1064, "name": "templateId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "5773:10:2", + "referencedDeclaration": 1054, + "src": "5694:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11154,27 +12012,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5763:21:2", + "src": "5684:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$3916_storage", + "typeIdentifier": "t_struct$_AddressSet_$3947_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 1035, + "id": 1066, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 3985, - "src": "5763:30:2", + "referencedDeclaration": 4016, + "src": "5684:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3916_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3916_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3947_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$3947_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 1037, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, @@ -11182,67 +12040,67 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5763:35:2", + "src": "5684:35:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1031, - "id": 1038, + "functionReturnParameters": 1062, + "id": 1069, "nodeType": "Return", - "src": "5756:42:2" + "src": "5677:42:2" } ] }, "documentation": { - "id": 1021, + "id": 1052, "nodeType": "StructuredDocumentation", - "src": "5495:160:2", + "src": "5416:160:2", "text": "@notice Check if guy is a redeemer\n @dev Verify if the address of guy exists\n @param guy Address to verify\n @return True if guy is a redeemer" }, "functionSelector": "ebfa62b9", - "id": 1040, + "id": 1071, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1028, + "id": 1059, "modifierName": { "argumentTypes": null, - "id": 1027, + "id": 1058, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "5721:13:2", + "referencedDeclaration": 4198, + "src": "5642:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5721:13:2" + "src": "5642:13:2" } ], "name": "verify", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1026, + "id": 1057, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1023, + "id": 1054, "mutability": "mutable", "name": "templateId", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5674:18:2", + "scope": 1071, + "src": "5595:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11250,10 +12108,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1022, + "id": 1053, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5674:7:2", + "src": "5595:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11264,13 +12122,13 @@ }, { "constant": false, - "id": 1025, + "id": 1056, "mutability": "mutable", "name": "guy", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5694:11:2", + "scope": 1071, + "src": "5615:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11278,10 +12136,10 @@ "typeString": "address" }, "typeName": { - "id": 1024, + "id": 1055, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5694:7:2", + "src": "5615:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11292,21 +12150,21 @@ "visibility": "internal" } ], - "src": "5673:33:2" + "src": "5594:33:2" }, "returnParameters": { - "id": 1031, + "id": 1062, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1030, + "id": 1061, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1040, - "src": "5744:4:2", + "scope": 1071, + "src": "5665:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11314,10 +12172,10 @@ "typeString": "bool" }, "typeName": { - "id": 1029, + "id": 1060, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5744:4:2", + "src": "5665:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11327,19 +12185,19 @@ "visibility": "internal" } ], - "src": "5743:6:2" + "src": "5664:6:2" }, - "scope": 1075, - "src": "5658:145:2", + "scope": 1106, + "src": "5579:145:2", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 1056, + "id": 1087, "nodeType": "Block", - "src": "5921:113:2", + "src": "5842:113:2", "statements": [ { "expression": { @@ -11350,12 +12208,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1046, + "id": 1077, "name": "PAUSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, - "src": "5943:11:2", + "referencedDeclaration": 719, + "src": "5864:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11365,18 +12223,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1047, + "id": 1078, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5956:3:2", + "src": "5877:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1048, + "id": 1079, "isConstant": false, "isLValue": false, "isPure": false, @@ -11384,7 +12242,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5956:10:2", + "src": "5877:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11402,18 +12260,18 @@ "typeString": "address payable" } ], - "id": 1045, + "id": 1076, "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, - "src": "5935:7:2", + "referencedDeclaration": 1238, + "src": "5856:7:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) view returns (bool)" } }, - "id": 1049, + "id": 1080, "isConstant": false, "isLValue": false, "isPure": false, @@ -11421,7 +12279,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5935:32:2", + "src": "5856:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11431,14 +12289,14 @@ { "argumentTypes": null, "hexValue": "4d616b65724261646765733a206d75737420686176652070617573657220726f6c6520746f207061757365", - "id": 1050, + "id": 1081, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5969:45:2", + "src": "5890:45:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d33b68c439b8482d10dd00f9785755fa4ae9979ec8a8ee9bf8b872747d1b8f67", @@ -11458,7 +12316,7 @@ "typeString": "literal_string \"MakerBadges: must have pauser role to pause\"" } ], - "id": 1044, + "id": 1075, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11466,13 +12324,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5927:7:2", + "src": "5848:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1051, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, @@ -11480,16 +12338,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5927:88:2", + "src": "5848:88:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1052, + "id": 1083, "nodeType": "ExpressionStatement", - "src": "5927:88:2" + "src": "5848:88:2" }, { "expression": { @@ -11497,18 +12355,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1053, + "id": 1084, "name": "_pause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4193, - "src": "6021:6:2", + "referencedDeclaration": 4224, + "src": "5942:6:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1054, + "id": 1085, "isConstant": false, "isLValue": false, "isPure": false, @@ -11516,27 +12374,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6021:8:2", + "src": "5942:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1055, + "id": 1086, "nodeType": "ExpressionStatement", - "src": "6021:8:2" + "src": "5942:8:2" } ] }, "documentation": { - "id": 1041, + "id": 1072, "nodeType": "StructuredDocumentation", - "src": "5807:85:2", + "src": "5728:85:2", "text": "@notice Pause all the functions\n @dev the caller must have the 'PAUSER_ROLE'" }, "functionSelector": "8456cb59", - "id": 1057, + "id": 1088, "implemented": true, "kind": "function", "modifiers": [], @@ -11544,28 +12402,28 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1042, + "id": 1073, "nodeType": "ParameterList", "parameters": [], - "src": "5909:2:2" + "src": "5830:2:2" }, "returnParameters": { - "id": 1043, + "id": 1074, "nodeType": "ParameterList", "parameters": [], - "src": "5921:0:2" + "src": "5842:0:2" }, - "scope": 1075, - "src": "5895:139:2", + "scope": 1106, + "src": "5816:139:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1073, + "id": 1104, "nodeType": "Block", - "src": "6156:127:2", + "src": "6077:127:2", "statements": [ { "expression": { @@ -11576,12 +12434,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1063, + "id": 1094, "name": "PAUSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 714, - "src": "6182:11:2", + "referencedDeclaration": 719, + "src": "6103:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11591,18 +12449,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1064, + "id": 1095, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "6195:3:2", + "src": "6116:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1065, + "id": 1096, "isConstant": false, "isLValue": false, "isPure": false, @@ -11610,7 +12468,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6195:10:2", + "src": "6116:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11628,18 +12486,18 @@ "typeString": "address payable" } ], - "id": 1062, + "id": 1093, "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, - "src": "6174:7:2", + "referencedDeclaration": 1238, + "src": "6095:7:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) view returns (bool)" } }, - "id": 1066, + "id": 1097, "isConstant": false, "isLValue": false, "isPure": false, @@ -11647,7 +12505,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6174:32:2", + "src": "6095:32:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11657,14 +12515,14 @@ { "argumentTypes": null, "hexValue": "4d616b65724261646765733a206d75737420686176652070617573657220726f6c6520746f20756e7061757365", - "id": 1067, + "id": 1098, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6208:47:2", + "src": "6129:47:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e81d67bdac033cbd58eea8cc6d19c5b2672fe1faa73f3d7c71703b8e96106b7b", @@ -11684,7 +12542,7 @@ "typeString": "literal_string \"MakerBadges: must have pauser role to unpause\"" } ], - "id": 1061, + "id": 1092, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11692,13 +12550,13 @@ -18 ], "referencedDeclaration": -18, - "src": "6166:7:2", + "src": "6087:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1068, + "id": 1099, "isConstant": false, "isLValue": false, "isPure": false, @@ -11706,16 +12564,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6166:90:2", + "src": "6087:90:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1069, + "id": 1100, "nodeType": "ExpressionStatement", - "src": "6166:90:2" + "src": "6087:90:2" }, { "expression": { @@ -11723,18 +12581,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1070, + "id": 1101, "name": "_unpause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4209, - "src": "6266:8:2", + "referencedDeclaration": 4240, + "src": "6187:8:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1071, + "id": 1102, "isConstant": false, "isLValue": false, "isPure": false, @@ -11742,27 +12600,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6266:10:2", + "src": "6187:10:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1072, + "id": 1103, "nodeType": "ExpressionStatement", - "src": "6266:10:2" + "src": "6187:10:2" } ] }, "documentation": { - "id": 1058, + "id": 1089, "nodeType": "StructuredDocumentation", - "src": "6038:87:2", + "src": "5959:87:2", "text": "@notice Unpause all the functions\n @dev the caller must have the 'PAUSER_ROLE'" }, "functionSelector": "3f4ba83a", - "id": 1074, + "id": 1105, "implemented": true, "kind": "function", "modifiers": [], @@ -11770,41 +12628,45 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1059, + "id": 1090, "nodeType": "ParameterList", "parameters": [], - "src": "6144:2:2" + "src": "6065:2:2" }, "returnParameters": { - "id": 1060, + "id": 1091, "nodeType": "ParameterList", "parameters": [], - "src": "6156:0:2" + "src": "6077:0:2" }, - "scope": 1075, - "src": "6128:155:2", + "scope": 1106, + "src": "6049:155:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 1076, - "src": "1381:4905:2" + "scope": 1107, + "src": "1381:4826:2" } ], - "src": "37:6250:2" + "src": "37:6171:2" }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:05.935Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.635Z", "devdoc": { - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/SafeMath.json b/abi/SafeMath.json index d465d84..ed0e813 100644 --- a/abi/SafeMath.json +++ b/abi/SafeMath.json @@ -1,9 +1,9 @@ { "contractName": "SafeMath", "abi": [], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"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/contracts/math/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]}},\"version\":1}", - "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d593b737eb31f859cc1c5d8e38e7d729dbf5add2fcc23495af9420016acea15a64736f6c634300060a0033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d593b737eb31f859cc1c5d8e38e7d729dbf5add2fcc23495af9420016acea15a64736f6c634300060a0033", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"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\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200633764bdc8be1c41391531e799ccfc9788e8d3fbd4561204c0222ac04e76c1e64736f6c634300060b0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200633764bdc8be1c41391531e799ccfc9788e8d3fbd4561204c0222ac04e76c1e64736f6c634300060b0033", "immutableReferences": {}, "sourceMap": "622:4578:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", "deployedSourceMap": "622:4578:10:-:0;;;;;;;;", @@ -13,15 +13,15 @@ "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", "exportedSymbols": { "SafeMath": [ - 1863 + 1894 ] }, - "id": 1864, + "id": 1895, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1669, + "id": 1700, "literals": [ "solidity", "^", @@ -37,38 +37,38 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 1670, + "id": 1701, "nodeType": "StructuredDocumentation", "src": "58:563:10", "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": 1863, + "id": 1894, "linearizedBaseContracts": [ - 1863 + 1894 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1695, + "id": 1726, "nodeType": "Block", "src": "941:109:10", "statements": [ { "assignments": [ - 1681 + 1712 ], "declarations": [ { "constant": false, - "id": 1681, + "id": 1712, "mutability": "mutable", "name": "c", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1695, + "scope": 1726, "src": "951:9:10", "stateVariable": false, "storageLocation": "default", @@ -77,7 +77,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1680, + "id": 1711, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "951:7:10", @@ -90,25 +90,25 @@ "visibility": "internal" } ], - "id": 1685, + "id": 1716, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1684, + "id": 1715, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1682, + "id": 1713, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1673, + "referencedDeclaration": 1704, "src": "963:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -119,11 +119,11 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 1683, + "id": 1714, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1675, + "referencedDeclaration": 1706, "src": "967:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -149,18 +149,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1689, + "id": 1720, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1687, + "id": 1718, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1681, + "referencedDeclaration": 1712, "src": "986:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -171,11 +171,11 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 1688, + "id": 1719, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1673, + "referencedDeclaration": 1704, "src": "991:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -191,7 +191,7 @@ { "argumentTypes": null, "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 1690, + "id": 1721, "isConstant": false, "isLValue": false, "isPure": true, @@ -218,7 +218,7 @@ "typeString": "literal_string \"SafeMath: addition overflow\"" } ], - "id": 1686, + "id": 1717, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -232,7 +232,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1691, + "id": 1722, "isConstant": false, "isLValue": false, "isPure": false, @@ -247,38 +247,38 @@ "typeString": "tuple()" } }, - "id": 1692, + "id": 1723, "nodeType": "ExpressionStatement", "src": "978:46:10" }, { "expression": { "argumentTypes": null, - "id": 1693, + "id": 1724, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1681, + "referencedDeclaration": 1712, "src": "1042:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1679, - "id": 1694, + "functionReturnParameters": 1710, + "id": 1725, "nodeType": "Return", "src": "1035:8:10" } ] }, "documentation": { - "id": 1671, + "id": 1702, "nodeType": "StructuredDocumentation", "src": "645:224:10", "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": 1696, + "id": 1727, "implemented": true, "kind": "function", "modifiers": [], @@ -286,17 +286,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1676, + "id": 1707, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1673, + "id": 1704, "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1696, + "scope": 1727, "src": "887:9:10", "stateVariable": false, "storageLocation": "default", @@ -305,7 +305,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1672, + "id": 1703, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "887:7:10", @@ -319,12 +319,12 @@ }, { "constant": false, - "id": 1675, + "id": 1706, "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1696, + "scope": 1727, "src": "898:9:10", "stateVariable": false, "storageLocation": "default", @@ -333,7 +333,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1674, + "id": 1705, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "898:7:10", @@ -349,17 +349,17 @@ "src": "886:22:10" }, "returnParameters": { - "id": 1679, + "id": 1710, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1678, + "id": 1709, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1696, + "scope": 1727, "src": "932:7:10", "stateVariable": false, "storageLocation": "default", @@ -368,7 +368,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1677, + "id": 1708, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "932:7:10", @@ -383,7 +383,7 @@ ], "src": "931:9:10" }, - "scope": 1863, + "scope": 1894, "src": "874:176:10", "stateMutability": "pure", "virtual": false, @@ -391,7 +391,7 @@ }, { "body": { - "id": 1712, + "id": 1743, "nodeType": "Block", "src": "1388:67:10", "statements": [ @@ -401,11 +401,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1707, + "id": 1738, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1699, + "referencedDeclaration": 1730, "src": "1409:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -414,11 +414,11 @@ }, { "argumentTypes": null, - "id": 1708, + "id": 1739, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1701, + "referencedDeclaration": 1732, "src": "1412:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -428,7 +428,7 @@ { "argumentTypes": null, "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 1709, + "id": 1740, "isConstant": false, "isLValue": false, "isPure": true, @@ -459,21 +459,21 @@ "typeString": "literal_string \"SafeMath: subtraction overflow\"" } ], - "id": 1706, + "id": 1737, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [ - 1713, - 1741 + 1744, + 1772 ], - "referencedDeclaration": 1741, + "referencedDeclaration": 1772, "src": "1405:3:10", "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": 1710, + "id": 1741, "isConstant": false, "isLValue": false, "isPure": false, @@ -488,20 +488,20 @@ "typeString": "uint256" } }, - "functionReturnParameters": 1705, - "id": 1711, + "functionReturnParameters": 1736, + "id": 1742, "nodeType": "Return", "src": "1398:50:10" } ] }, "documentation": { - "id": 1697, + "id": 1728, "nodeType": "StructuredDocumentation", "src": "1056:260:10", "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": 1713, + "id": 1744, "implemented": true, "kind": "function", "modifiers": [], @@ -509,17 +509,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1702, + "id": 1733, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1699, + "id": 1730, "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1713, + "scope": 1744, "src": "1334:9:10", "stateVariable": false, "storageLocation": "default", @@ -528,7 +528,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1698, + "id": 1729, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1334:7:10", @@ -542,12 +542,12 @@ }, { "constant": false, - "id": 1701, + "id": 1732, "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1713, + "scope": 1744, "src": "1345:9:10", "stateVariable": false, "storageLocation": "default", @@ -556,7 +556,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1700, + "id": 1731, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1345:7:10", @@ -572,17 +572,17 @@ "src": "1333:22:10" }, "returnParameters": { - "id": 1705, + "id": 1736, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1704, + "id": 1735, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1713, + "scope": 1744, "src": "1379:7:10", "stateVariable": false, "storageLocation": "default", @@ -591,7 +591,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1703, + "id": 1734, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1379:7:10", @@ -606,7 +606,7 @@ ], "src": "1378:9:10" }, - "scope": 1863, + "scope": 1894, "src": "1321:134:10", "stateMutability": "pure", "virtual": false, @@ -614,7 +614,7 @@ }, { "body": { - "id": 1740, + "id": 1771, "nodeType": "Block", "src": "1841:92:10", "statements": [ @@ -628,18 +628,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1728, + "id": 1759, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1726, + "id": 1757, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1718, + "referencedDeclaration": 1749, "src": "1859:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -650,11 +650,11 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1727, + "id": 1758, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1716, + "referencedDeclaration": 1747, "src": "1864:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -669,11 +669,11 @@ }, { "argumentTypes": null, - "id": 1729, + "id": 1760, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1720, + "referencedDeclaration": 1751, "src": "1867:12:10", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -692,7 +692,7 @@ "typeString": "string memory" } ], - "id": 1725, + "id": 1756, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -706,7 +706,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1730, + "id": 1761, "isConstant": false, "isLValue": false, "isPure": false, @@ -721,23 +721,23 @@ "typeString": "tuple()" } }, - "id": 1731, + "id": 1762, "nodeType": "ExpressionStatement", "src": "1851:29:10" }, { "assignments": [ - 1733 + 1764 ], "declarations": [ { "constant": false, - "id": 1733, + "id": 1764, "mutability": "mutable", "name": "c", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1740, + "scope": 1771, "src": "1890:9:10", "stateVariable": false, "storageLocation": "default", @@ -746,7 +746,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1732, + "id": 1763, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1890:7:10", @@ -759,25 +759,25 @@ "visibility": "internal" } ], - "id": 1737, + "id": 1768, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1736, + "id": 1767, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1734, + "id": 1765, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1716, + "referencedDeclaration": 1747, "src": "1902:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -788,11 +788,11 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 1735, + "id": 1766, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1718, + "referencedDeclaration": 1749, "src": "1906:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -811,31 +811,31 @@ { "expression": { "argumentTypes": null, - "id": 1738, + "id": 1769, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1733, + "referencedDeclaration": 1764, "src": "1925:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1724, - "id": 1739, + "functionReturnParameters": 1755, + "id": 1770, "nodeType": "Return", "src": "1918:8:10" } ] }, "documentation": { - "id": 1714, + "id": 1745, "nodeType": "StructuredDocumentation", "src": "1461:280:10", "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": 1741, + "id": 1772, "implemented": true, "kind": "function", "modifiers": [], @@ -843,17 +843,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1721, + "id": 1752, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1716, + "id": 1747, "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1741, + "scope": 1772, "src": "1759:9:10", "stateVariable": false, "storageLocation": "default", @@ -862,7 +862,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1715, + "id": 1746, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1759:7:10", @@ -876,12 +876,12 @@ }, { "constant": false, - "id": 1718, + "id": 1749, "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1741, + "scope": 1772, "src": "1770:9:10", "stateVariable": false, "storageLocation": "default", @@ -890,7 +890,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1717, + "id": 1748, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1770:7:10", @@ -904,12 +904,12 @@ }, { "constant": false, - "id": 1720, + "id": 1751, "mutability": "mutable", "name": "errorMessage", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1741, + "scope": 1772, "src": "1781:26:10", "stateVariable": false, "storageLocation": "memory", @@ -918,7 +918,7 @@ "typeString": "string" }, "typeName": { - "id": 1719, + "id": 1750, "name": "string", "nodeType": "ElementaryTypeName", "src": "1781:6:10", @@ -934,17 +934,17 @@ "src": "1758:50:10" }, "returnParameters": { - "id": 1724, + "id": 1755, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1723, + "id": 1754, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1741, + "scope": 1772, "src": "1832:7:10", "stateVariable": false, "storageLocation": "default", @@ -953,7 +953,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1722, + "id": 1753, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1832:7:10", @@ -968,7 +968,7 @@ ], "src": "1831:9:10" }, - "scope": 1863, + "scope": 1894, "src": "1746:187:10", "stateMutability": "pure", "virtual": false, @@ -976,7 +976,7 @@ }, { "body": { - "id": 1775, + "id": 1806, "nodeType": "Block", "src": "2247:392:10", "statements": [ @@ -987,18 +987,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1753, + "id": 1784, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1751, + "id": 1782, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1744, + "referencedDeclaration": 1775, "src": "2479:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1010,7 +1010,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1752, + "id": 1783, "isConstant": false, "isLValue": false, "isPure": true, @@ -1032,11 +1032,11 @@ } }, "falseBody": null, - "id": 1757, + "id": 1788, "nodeType": "IfStatement", "src": "2475:45:10", "trueBody": { - "id": 1756, + "id": 1787, "nodeType": "Block", "src": "2487:33:10", "statements": [ @@ -1044,7 +1044,7 @@ "expression": { "argumentTypes": null, "hexValue": "30", - "id": 1754, + "id": 1785, "isConstant": false, "isLValue": false, "isPure": true, @@ -1059,8 +1059,8 @@ }, "value": "0" }, - "functionReturnParameters": 1750, - "id": 1755, + "functionReturnParameters": 1781, + "id": 1786, "nodeType": "Return", "src": "2501:8:10" } @@ -1069,17 +1069,17 @@ }, { "assignments": [ - 1759 + 1790 ], "declarations": [ { "constant": false, - "id": 1759, + "id": 1790, "mutability": "mutable", "name": "c", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1775, + "scope": 1806, "src": "2530:9:10", "stateVariable": false, "storageLocation": "default", @@ -1088,7 +1088,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1758, + "id": 1789, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2530:7:10", @@ -1101,25 +1101,25 @@ "visibility": "internal" } ], - "id": 1763, + "id": 1794, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1762, + "id": 1793, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1760, + "id": 1791, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1744, + "referencedDeclaration": 1775, "src": "2542:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1130,11 +1130,11 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 1761, + "id": 1792, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1746, + "referencedDeclaration": 1777, "src": "2546:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1160,7 +1160,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1769, + "id": 1800, "isConstant": false, "isLValue": false, "isPure": false, @@ -1171,18 +1171,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1767, + "id": 1798, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1765, + "id": 1796, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1759, + "referencedDeclaration": 1790, "src": "2565:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1193,11 +1193,11 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 1766, + "id": 1797, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1744, + "referencedDeclaration": 1775, "src": "2569:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1214,11 +1214,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1768, + "id": 1799, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1746, + "referencedDeclaration": 1777, "src": "2574:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1234,7 +1234,7 @@ { "argumentTypes": null, "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 1770, + "id": 1801, "isConstant": false, "isLValue": false, "isPure": true, @@ -1261,7 +1261,7 @@ "typeString": "literal_string \"SafeMath: multiplication overflow\"" } ], - "id": 1764, + "id": 1795, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1275,7 +1275,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1771, + "id": 1802, "isConstant": false, "isLValue": false, "isPure": false, @@ -1290,38 +1290,38 @@ "typeString": "tuple()" } }, - "id": 1772, + "id": 1803, "nodeType": "ExpressionStatement", "src": "2557:56:10" }, { "expression": { "argumentTypes": null, - "id": 1773, + "id": 1804, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1759, + "referencedDeclaration": 1790, "src": "2631:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1750, - "id": 1774, + "functionReturnParameters": 1781, + "id": 1805, "nodeType": "Return", "src": "2624:8:10" } ] }, "documentation": { - "id": 1742, + "id": 1773, "nodeType": "StructuredDocumentation", "src": "1939:236:10", "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": 1776, + "id": 1807, "implemented": true, "kind": "function", "modifiers": [], @@ -1329,17 +1329,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1747, + "id": 1778, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1744, + "id": 1775, "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1776, + "scope": 1807, "src": "2193:9:10", "stateVariable": false, "storageLocation": "default", @@ -1348,7 +1348,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1743, + "id": 1774, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2193:7:10", @@ -1362,12 +1362,12 @@ }, { "constant": false, - "id": 1746, + "id": 1777, "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1776, + "scope": 1807, "src": "2204:9:10", "stateVariable": false, "storageLocation": "default", @@ -1376,7 +1376,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1745, + "id": 1776, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2204:7:10", @@ -1392,17 +1392,17 @@ "src": "2192:22:10" }, "returnParameters": { - "id": 1750, + "id": 1781, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1749, + "id": 1780, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1776, + "scope": 1807, "src": "2238:7:10", "stateVariable": false, "storageLocation": "default", @@ -1411,7 +1411,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1748, + "id": 1779, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2238:7:10", @@ -1426,7 +1426,7 @@ ], "src": "2237:9:10" }, - "scope": 1863, + "scope": 1894, "src": "2180:459:10", "stateMutability": "pure", "virtual": false, @@ -1434,7 +1434,7 @@ }, { "body": { - "id": 1792, + "id": 1823, "nodeType": "Block", "src": "3168:63:10", "statements": [ @@ -1444,11 +1444,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1787, + "id": 1818, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1779, + "referencedDeclaration": 1810, "src": "3189:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1457,11 +1457,11 @@ }, { "argumentTypes": null, - "id": 1788, + "id": 1819, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1781, + "referencedDeclaration": 1812, "src": "3192:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1471,7 +1471,7 @@ { "argumentTypes": null, "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 1789, + "id": 1820, "isConstant": false, "isLValue": false, "isPure": true, @@ -1502,21 +1502,21 @@ "typeString": "literal_string \"SafeMath: division by zero\"" } ], - "id": 1786, + "id": 1817, "name": "div", "nodeType": "Identifier", "overloadedDeclarations": [ - 1793, - 1821 + 1824, + 1852 ], - "referencedDeclaration": 1821, + "referencedDeclaration": 1852, "src": "3185:3:10", "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": 1790, + "id": 1821, "isConstant": false, "isLValue": false, "isPure": false, @@ -1531,20 +1531,20 @@ "typeString": "uint256" } }, - "functionReturnParameters": 1785, - "id": 1791, + "functionReturnParameters": 1816, + "id": 1822, "nodeType": "Return", "src": "3178:46:10" } ] }, "documentation": { - "id": 1777, + "id": 1808, "nodeType": "StructuredDocumentation", "src": "2645:451:10", "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": 1793, + "id": 1824, "implemented": true, "kind": "function", "modifiers": [], @@ -1552,17 +1552,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1782, + "id": 1813, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1779, + "id": 1810, "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1793, + "scope": 1824, "src": "3114:9:10", "stateVariable": false, "storageLocation": "default", @@ -1571,7 +1571,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1778, + "id": 1809, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3114:7:10", @@ -1585,12 +1585,12 @@ }, { "constant": false, - "id": 1781, + "id": 1812, "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1793, + "scope": 1824, "src": "3125:9:10", "stateVariable": false, "storageLocation": "default", @@ -1599,7 +1599,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1780, + "id": 1811, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3125:7:10", @@ -1615,17 +1615,17 @@ "src": "3113:22:10" }, "returnParameters": { - "id": 1785, + "id": 1816, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1784, + "id": 1815, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1793, + "scope": 1824, "src": "3159:7:10", "stateVariable": false, "storageLocation": "default", @@ -1634,7 +1634,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1783, + "id": 1814, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3159:7:10", @@ -1649,7 +1649,7 @@ ], "src": "3158:9:10" }, - "scope": 1863, + "scope": 1894, "src": "3101:130:10", "stateMutability": "pure", "virtual": false, @@ -1657,7 +1657,7 @@ }, { "body": { - "id": 1820, + "id": 1851, "nodeType": "Block", "src": "3808:177:10", "statements": [ @@ -1671,18 +1671,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1808, + "id": 1839, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1806, + "id": 1837, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1798, + "referencedDeclaration": 1829, "src": "3826:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1694,7 +1694,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1807, + "id": 1838, "isConstant": false, "isLValue": false, "isPure": true, @@ -1717,11 +1717,11 @@ }, { "argumentTypes": null, - "id": 1809, + "id": 1840, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1800, + "referencedDeclaration": 1831, "src": "3833:12:10", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -1740,7 +1740,7 @@ "typeString": "string memory" } ], - "id": 1805, + "id": 1836, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1754,7 +1754,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1810, + "id": 1841, "isConstant": false, "isLValue": false, "isPure": false, @@ -1769,23 +1769,23 @@ "typeString": "tuple()" } }, - "id": 1811, + "id": 1842, "nodeType": "ExpressionStatement", "src": "3818:28:10" }, { "assignments": [ - 1813 + 1844 ], "declarations": [ { "constant": false, - "id": 1813, + "id": 1844, "mutability": "mutable", "name": "c", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1820, + "scope": 1851, "src": "3856:9:10", "stateVariable": false, "storageLocation": "default", @@ -1794,7 +1794,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1812, + "id": 1843, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3856:7:10", @@ -1807,25 +1807,25 @@ "visibility": "internal" } ], - "id": 1817, + "id": 1848, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1816, + "id": 1847, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1814, + "id": 1845, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1796, + "referencedDeclaration": 1827, "src": "3868:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1836,11 +1836,11 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 1815, + "id": 1846, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1798, + "referencedDeclaration": 1829, "src": "3872:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1859,31 +1859,31 @@ { "expression": { "argumentTypes": null, - "id": 1818, + "id": 1849, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1813, + "referencedDeclaration": 1844, "src": "3977:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1804, - "id": 1819, + "functionReturnParameters": 1835, + "id": 1850, "nodeType": "Return", "src": "3970:8:10" } ] }, "documentation": { - "id": 1794, + "id": 1825, "nodeType": "StructuredDocumentation", "src": "3237:471:10", "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": 1821, + "id": 1852, "implemented": true, "kind": "function", "modifiers": [], @@ -1891,17 +1891,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1801, + "id": 1832, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1796, + "id": 1827, "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1821, + "scope": 1852, "src": "3726:9:10", "stateVariable": false, "storageLocation": "default", @@ -1910,7 +1910,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1795, + "id": 1826, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3726:7:10", @@ -1924,12 +1924,12 @@ }, { "constant": false, - "id": 1798, + "id": 1829, "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1821, + "scope": 1852, "src": "3737:9:10", "stateVariable": false, "storageLocation": "default", @@ -1938,7 +1938,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1797, + "id": 1828, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3737:7:10", @@ -1952,12 +1952,12 @@ }, { "constant": false, - "id": 1800, + "id": 1831, "mutability": "mutable", "name": "errorMessage", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1821, + "scope": 1852, "src": "3748:26:10", "stateVariable": false, "storageLocation": "memory", @@ -1966,7 +1966,7 @@ "typeString": "string" }, "typeName": { - "id": 1799, + "id": 1830, "name": "string", "nodeType": "ElementaryTypeName", "src": "3748:6:10", @@ -1982,17 +1982,17 @@ "src": "3725:50:10" }, "returnParameters": { - "id": 1804, + "id": 1835, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1803, + "id": 1834, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1821, + "scope": 1852, "src": "3799:7:10", "stateVariable": false, "storageLocation": "default", @@ -2001,7 +2001,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1802, + "id": 1833, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3799:7:10", @@ -2016,7 +2016,7 @@ ], "src": "3798:9:10" }, - "scope": 1863, + "scope": 1894, "src": "3713:272:10", "stateMutability": "pure", "virtual": false, @@ -2024,7 +2024,7 @@ }, { "body": { - "id": 1837, + "id": 1868, "nodeType": "Block", "src": "4503:61:10", "statements": [ @@ -2034,11 +2034,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1832, + "id": 1863, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1824, + "referencedDeclaration": 1855, "src": "4524:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2047,11 +2047,11 @@ }, { "argumentTypes": null, - "id": 1833, + "id": 1864, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 1857, "src": "4527:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2061,7 +2061,7 @@ { "argumentTypes": null, "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 1834, + "id": 1865, "isConstant": false, "isLValue": false, "isPure": true, @@ -2092,21 +2092,21 @@ "typeString": "literal_string \"SafeMath: modulo by zero\"" } ], - "id": 1831, + "id": 1862, "name": "mod", "nodeType": "Identifier", "overloadedDeclarations": [ - 1838, - 1862 + 1869, + 1893 ], - "referencedDeclaration": 1862, + "referencedDeclaration": 1893, "src": "4520:3:10", "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": 1835, + "id": 1866, "isConstant": false, "isLValue": false, "isPure": false, @@ -2121,20 +2121,20 @@ "typeString": "uint256" } }, - "functionReturnParameters": 1830, - "id": 1836, + "functionReturnParameters": 1861, + "id": 1867, "nodeType": "Return", "src": "4513:44:10" } ] }, "documentation": { - "id": 1822, + "id": 1853, "nodeType": "StructuredDocumentation", "src": "3991:440:10", "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": 1838, + "id": 1869, "implemented": true, "kind": "function", "modifiers": [], @@ -2142,17 +2142,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1827, + "id": 1858, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1824, + "id": 1855, "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1838, + "scope": 1869, "src": "4449:9:10", "stateVariable": false, "storageLocation": "default", @@ -2161,7 +2161,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1823, + "id": 1854, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4449:7:10", @@ -2175,12 +2175,12 @@ }, { "constant": false, - "id": 1826, + "id": 1857, "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1838, + "scope": 1869, "src": "4460:9:10", "stateVariable": false, "storageLocation": "default", @@ -2189,7 +2189,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1825, + "id": 1856, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4460:7:10", @@ -2205,17 +2205,17 @@ "src": "4448:22:10" }, "returnParameters": { - "id": 1830, + "id": 1861, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1829, + "id": 1860, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1838, + "scope": 1869, "src": "4494:7:10", "stateVariable": false, "storageLocation": "default", @@ -2224,7 +2224,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1828, + "id": 1859, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4494:7:10", @@ -2239,7 +2239,7 @@ ], "src": "4493:9:10" }, - "scope": 1863, + "scope": 1894, "src": "4436:128:10", "stateMutability": "pure", "virtual": false, @@ -2247,7 +2247,7 @@ }, { "body": { - "id": 1861, + "id": 1892, "nodeType": "Block", "src": "5130:68:10", "statements": [ @@ -2261,18 +2261,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1853, + "id": 1884, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1851, + "id": 1882, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1843, + "referencedDeclaration": 1874, "src": "5148:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2284,7 +2284,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1852, + "id": 1883, "isConstant": false, "isLValue": false, "isPure": true, @@ -2307,11 +2307,11 @@ }, { "argumentTypes": null, - "id": 1854, + "id": 1885, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1845, + "referencedDeclaration": 1876, "src": "5156:12:10", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -2330,7 +2330,7 @@ "typeString": "string memory" } ], - "id": 1850, + "id": 1881, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2344,7 +2344,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1855, + "id": 1886, "isConstant": false, "isLValue": false, "isPure": false, @@ -2359,7 +2359,7 @@ "typeString": "tuple()" } }, - "id": 1856, + "id": 1887, "nodeType": "ExpressionStatement", "src": "5140:29:10" }, @@ -2370,18 +2370,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1859, + "id": 1890, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1857, + "id": 1888, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1841, + "referencedDeclaration": 1872, "src": "5186:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2392,11 +2392,11 @@ "operator": "%", "rightExpression": { "argumentTypes": null, - "id": 1858, + "id": 1889, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1843, + "referencedDeclaration": 1874, "src": "5190:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2409,20 +2409,20 @@ "typeString": "uint256" } }, - "functionReturnParameters": 1849, - "id": 1860, + "functionReturnParameters": 1880, + "id": 1891, "nodeType": "Return", "src": "5179:12:10" } ] }, "documentation": { - "id": 1839, + "id": 1870, "nodeType": "StructuredDocumentation", "src": "4570:460:10", "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": 1862, + "id": 1893, "implemented": true, "kind": "function", "modifiers": [], @@ -2430,17 +2430,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1846, + "id": 1877, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1841, + "id": 1872, "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1862, + "scope": 1893, "src": "5048:9:10", "stateVariable": false, "storageLocation": "default", @@ -2449,7 +2449,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1840, + "id": 1871, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5048:7:10", @@ -2463,12 +2463,12 @@ }, { "constant": false, - "id": 1843, + "id": 1874, "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1862, + "scope": 1893, "src": "5059:9:10", "stateVariable": false, "storageLocation": "default", @@ -2477,7 +2477,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1842, + "id": 1873, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5059:7:10", @@ -2491,12 +2491,12 @@ }, { "constant": false, - "id": 1845, + "id": 1876, "mutability": "mutable", "name": "errorMessage", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1862, + "scope": 1893, "src": "5070:26:10", "stateVariable": false, "storageLocation": "memory", @@ -2505,7 +2505,7 @@ "typeString": "string" }, "typeName": { - "id": 1844, + "id": 1875, "name": "string", "nodeType": "ElementaryTypeName", "src": "5070:6:10", @@ -2521,17 +2521,17 @@ "src": "5047:50:10" }, "returnParameters": { - "id": 1849, + "id": 1880, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1848, + "id": 1879, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1862, + "scope": 1893, "src": "5121:7:10", "stateVariable": false, "storageLocation": "default", @@ -2540,7 +2540,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1847, + "id": 1878, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5121:7:10", @@ -2555,14 +2555,14 @@ ], "src": "5120:9:10" }, - "scope": 1863, + "scope": 1894, "src": "5035:163:10", "stateMutability": "pure", "virtual": false, "visibility": "internal" } ], - "scope": 1864, + "scope": 1895, "src": "622:4578:10" } ], @@ -2572,15 +2572,15 @@ "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", "exportedSymbols": { "SafeMath": [ - 1863 + 1894 ] }, - "id": 1864, + "id": 1895, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 1669, + "id": 1700, "literals": [ "solidity", "^", @@ -2596,38 +2596,38 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 1670, + "id": 1701, "nodeType": "StructuredDocumentation", "src": "58:563:10", "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": 1863, + "id": 1894, "linearizedBaseContracts": [ - 1863 + 1894 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1695, + "id": 1726, "nodeType": "Block", "src": "941:109:10", "statements": [ { "assignments": [ - 1681 + 1712 ], "declarations": [ { "constant": false, - "id": 1681, + "id": 1712, "mutability": "mutable", "name": "c", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1695, + "scope": 1726, "src": "951:9:10", "stateVariable": false, "storageLocation": "default", @@ -2636,7 +2636,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1680, + "id": 1711, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "951:7:10", @@ -2649,25 +2649,25 @@ "visibility": "internal" } ], - "id": 1685, + "id": 1716, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1684, + "id": 1715, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1682, + "id": 1713, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1673, + "referencedDeclaration": 1704, "src": "963:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2678,11 +2678,11 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 1683, + "id": 1714, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1675, + "referencedDeclaration": 1706, "src": "967:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2708,18 +2708,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1689, + "id": 1720, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1687, + "id": 1718, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1681, + "referencedDeclaration": 1712, "src": "986:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2730,11 +2730,11 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 1688, + "id": 1719, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1673, + "referencedDeclaration": 1704, "src": "991:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2750,7 +2750,7 @@ { "argumentTypes": null, "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 1690, + "id": 1721, "isConstant": false, "isLValue": false, "isPure": true, @@ -2777,7 +2777,7 @@ "typeString": "literal_string \"SafeMath: addition overflow\"" } ], - "id": 1686, + "id": 1717, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2791,7 +2791,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1691, + "id": 1722, "isConstant": false, "isLValue": false, "isPure": false, @@ -2806,38 +2806,38 @@ "typeString": "tuple()" } }, - "id": 1692, + "id": 1723, "nodeType": "ExpressionStatement", "src": "978:46:10" }, { "expression": { "argumentTypes": null, - "id": 1693, + "id": 1724, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1681, + "referencedDeclaration": 1712, "src": "1042:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1679, - "id": 1694, + "functionReturnParameters": 1710, + "id": 1725, "nodeType": "Return", "src": "1035:8:10" } ] }, "documentation": { - "id": 1671, + "id": 1702, "nodeType": "StructuredDocumentation", "src": "645:224:10", "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": 1696, + "id": 1727, "implemented": true, "kind": "function", "modifiers": [], @@ -2845,17 +2845,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1676, + "id": 1707, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1673, + "id": 1704, "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1696, + "scope": 1727, "src": "887:9:10", "stateVariable": false, "storageLocation": "default", @@ -2864,7 +2864,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1672, + "id": 1703, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "887:7:10", @@ -2878,12 +2878,12 @@ }, { "constant": false, - "id": 1675, + "id": 1706, "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1696, + "scope": 1727, "src": "898:9:10", "stateVariable": false, "storageLocation": "default", @@ -2892,7 +2892,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1674, + "id": 1705, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "898:7:10", @@ -2908,17 +2908,17 @@ "src": "886:22:10" }, "returnParameters": { - "id": 1679, + "id": 1710, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1678, + "id": 1709, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1696, + "scope": 1727, "src": "932:7:10", "stateVariable": false, "storageLocation": "default", @@ -2927,7 +2927,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1677, + "id": 1708, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "932:7:10", @@ -2942,7 +2942,7 @@ ], "src": "931:9:10" }, - "scope": 1863, + "scope": 1894, "src": "874:176:10", "stateMutability": "pure", "virtual": false, @@ -2950,7 +2950,7 @@ }, { "body": { - "id": 1712, + "id": 1743, "nodeType": "Block", "src": "1388:67:10", "statements": [ @@ -2960,11 +2960,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1707, + "id": 1738, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1699, + "referencedDeclaration": 1730, "src": "1409:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2973,11 +2973,11 @@ }, { "argumentTypes": null, - "id": 1708, + "id": 1739, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1701, + "referencedDeclaration": 1732, "src": "1412:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2987,7 +2987,7 @@ { "argumentTypes": null, "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 1709, + "id": 1740, "isConstant": false, "isLValue": false, "isPure": true, @@ -3018,21 +3018,21 @@ "typeString": "literal_string \"SafeMath: subtraction overflow\"" } ], - "id": 1706, + "id": 1737, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [ - 1713, - 1741 + 1744, + 1772 ], - "referencedDeclaration": 1741, + "referencedDeclaration": 1772, "src": "1405:3:10", "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": 1710, + "id": 1741, "isConstant": false, "isLValue": false, "isPure": false, @@ -3047,20 +3047,20 @@ "typeString": "uint256" } }, - "functionReturnParameters": 1705, - "id": 1711, + "functionReturnParameters": 1736, + "id": 1742, "nodeType": "Return", "src": "1398:50:10" } ] }, "documentation": { - "id": 1697, + "id": 1728, "nodeType": "StructuredDocumentation", "src": "1056:260:10", "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": 1713, + "id": 1744, "implemented": true, "kind": "function", "modifiers": [], @@ -3068,17 +3068,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1702, + "id": 1733, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1699, + "id": 1730, "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1713, + "scope": 1744, "src": "1334:9:10", "stateVariable": false, "storageLocation": "default", @@ -3087,7 +3087,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1698, + "id": 1729, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1334:7:10", @@ -3101,12 +3101,12 @@ }, { "constant": false, - "id": 1701, + "id": 1732, "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1713, + "scope": 1744, "src": "1345:9:10", "stateVariable": false, "storageLocation": "default", @@ -3115,7 +3115,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1700, + "id": 1731, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1345:7:10", @@ -3131,17 +3131,17 @@ "src": "1333:22:10" }, "returnParameters": { - "id": 1705, + "id": 1736, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1704, + "id": 1735, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1713, + "scope": 1744, "src": "1379:7:10", "stateVariable": false, "storageLocation": "default", @@ -3150,7 +3150,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1703, + "id": 1734, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1379:7:10", @@ -3165,7 +3165,7 @@ ], "src": "1378:9:10" }, - "scope": 1863, + "scope": 1894, "src": "1321:134:10", "stateMutability": "pure", "virtual": false, @@ -3173,7 +3173,7 @@ }, { "body": { - "id": 1740, + "id": 1771, "nodeType": "Block", "src": "1841:92:10", "statements": [ @@ -3187,18 +3187,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1728, + "id": 1759, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1726, + "id": 1757, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1718, + "referencedDeclaration": 1749, "src": "1859:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3209,11 +3209,11 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1727, + "id": 1758, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1716, + "referencedDeclaration": 1747, "src": "1864:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3228,11 +3228,11 @@ }, { "argumentTypes": null, - "id": 1729, + "id": 1760, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1720, + "referencedDeclaration": 1751, "src": "1867:12:10", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -3251,7 +3251,7 @@ "typeString": "string memory" } ], - "id": 1725, + "id": 1756, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3265,7 +3265,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1730, + "id": 1761, "isConstant": false, "isLValue": false, "isPure": false, @@ -3280,23 +3280,23 @@ "typeString": "tuple()" } }, - "id": 1731, + "id": 1762, "nodeType": "ExpressionStatement", "src": "1851:29:10" }, { "assignments": [ - 1733 + 1764 ], "declarations": [ { "constant": false, - "id": 1733, + "id": 1764, "mutability": "mutable", "name": "c", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1740, + "scope": 1771, "src": "1890:9:10", "stateVariable": false, "storageLocation": "default", @@ -3305,7 +3305,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1732, + "id": 1763, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1890:7:10", @@ -3318,25 +3318,25 @@ "visibility": "internal" } ], - "id": 1737, + "id": 1768, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1736, + "id": 1767, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1734, + "id": 1765, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1716, + "referencedDeclaration": 1747, "src": "1902:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3347,11 +3347,11 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 1735, + "id": 1766, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1718, + "referencedDeclaration": 1749, "src": "1906:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3370,31 +3370,31 @@ { "expression": { "argumentTypes": null, - "id": 1738, + "id": 1769, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1733, + "referencedDeclaration": 1764, "src": "1925:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1724, - "id": 1739, + "functionReturnParameters": 1755, + "id": 1770, "nodeType": "Return", "src": "1918:8:10" } ] }, "documentation": { - "id": 1714, + "id": 1745, "nodeType": "StructuredDocumentation", "src": "1461:280:10", "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": 1741, + "id": 1772, "implemented": true, "kind": "function", "modifiers": [], @@ -3402,17 +3402,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1721, + "id": 1752, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1716, + "id": 1747, "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1741, + "scope": 1772, "src": "1759:9:10", "stateVariable": false, "storageLocation": "default", @@ -3421,7 +3421,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1715, + "id": 1746, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1759:7:10", @@ -3435,12 +3435,12 @@ }, { "constant": false, - "id": 1718, + "id": 1749, "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1741, + "scope": 1772, "src": "1770:9:10", "stateVariable": false, "storageLocation": "default", @@ -3449,7 +3449,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1717, + "id": 1748, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1770:7:10", @@ -3463,12 +3463,12 @@ }, { "constant": false, - "id": 1720, + "id": 1751, "mutability": "mutable", "name": "errorMessage", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1741, + "scope": 1772, "src": "1781:26:10", "stateVariable": false, "storageLocation": "memory", @@ -3477,7 +3477,7 @@ "typeString": "string" }, "typeName": { - "id": 1719, + "id": 1750, "name": "string", "nodeType": "ElementaryTypeName", "src": "1781:6:10", @@ -3493,17 +3493,17 @@ "src": "1758:50:10" }, "returnParameters": { - "id": 1724, + "id": 1755, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1723, + "id": 1754, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1741, + "scope": 1772, "src": "1832:7:10", "stateVariable": false, "storageLocation": "default", @@ -3512,7 +3512,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1722, + "id": 1753, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1832:7:10", @@ -3527,7 +3527,7 @@ ], "src": "1831:9:10" }, - "scope": 1863, + "scope": 1894, "src": "1746:187:10", "stateMutability": "pure", "virtual": false, @@ -3535,7 +3535,7 @@ }, { "body": { - "id": 1775, + "id": 1806, "nodeType": "Block", "src": "2247:392:10", "statements": [ @@ -3546,18 +3546,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1753, + "id": 1784, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1751, + "id": 1782, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1744, + "referencedDeclaration": 1775, "src": "2479:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3569,7 +3569,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1752, + "id": 1783, "isConstant": false, "isLValue": false, "isPure": true, @@ -3591,11 +3591,11 @@ } }, "falseBody": null, - "id": 1757, + "id": 1788, "nodeType": "IfStatement", "src": "2475:45:10", "trueBody": { - "id": 1756, + "id": 1787, "nodeType": "Block", "src": "2487:33:10", "statements": [ @@ -3603,7 +3603,7 @@ "expression": { "argumentTypes": null, "hexValue": "30", - "id": 1754, + "id": 1785, "isConstant": false, "isLValue": false, "isPure": true, @@ -3618,8 +3618,8 @@ }, "value": "0" }, - "functionReturnParameters": 1750, - "id": 1755, + "functionReturnParameters": 1781, + "id": 1786, "nodeType": "Return", "src": "2501:8:10" } @@ -3628,17 +3628,17 @@ }, { "assignments": [ - 1759 + 1790 ], "declarations": [ { "constant": false, - "id": 1759, + "id": 1790, "mutability": "mutable", "name": "c", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1775, + "scope": 1806, "src": "2530:9:10", "stateVariable": false, "storageLocation": "default", @@ -3647,7 +3647,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1758, + "id": 1789, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2530:7:10", @@ -3660,25 +3660,25 @@ "visibility": "internal" } ], - "id": 1763, + "id": 1794, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1762, + "id": 1793, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1760, + "id": 1791, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1744, + "referencedDeclaration": 1775, "src": "2542:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3689,11 +3689,11 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 1761, + "id": 1792, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1746, + "referencedDeclaration": 1777, "src": "2546:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3719,7 +3719,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1769, + "id": 1800, "isConstant": false, "isLValue": false, "isPure": false, @@ -3730,18 +3730,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1767, + "id": 1798, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1765, + "id": 1796, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1759, + "referencedDeclaration": 1790, "src": "2565:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3752,11 +3752,11 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 1766, + "id": 1797, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1744, + "referencedDeclaration": 1775, "src": "2569:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3773,11 +3773,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1768, + "id": 1799, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1746, + "referencedDeclaration": 1777, "src": "2574:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3793,7 +3793,7 @@ { "argumentTypes": null, "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 1770, + "id": 1801, "isConstant": false, "isLValue": false, "isPure": true, @@ -3820,7 +3820,7 @@ "typeString": "literal_string \"SafeMath: multiplication overflow\"" } ], - "id": 1764, + "id": 1795, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3834,7 +3834,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1771, + "id": 1802, "isConstant": false, "isLValue": false, "isPure": false, @@ -3849,38 +3849,38 @@ "typeString": "tuple()" } }, - "id": 1772, + "id": 1803, "nodeType": "ExpressionStatement", "src": "2557:56:10" }, { "expression": { "argumentTypes": null, - "id": 1773, + "id": 1804, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1759, + "referencedDeclaration": 1790, "src": "2631:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1750, - "id": 1774, + "functionReturnParameters": 1781, + "id": 1805, "nodeType": "Return", "src": "2624:8:10" } ] }, "documentation": { - "id": 1742, + "id": 1773, "nodeType": "StructuredDocumentation", "src": "1939:236:10", "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": 1776, + "id": 1807, "implemented": true, "kind": "function", "modifiers": [], @@ -3888,17 +3888,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1747, + "id": 1778, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1744, + "id": 1775, "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1776, + "scope": 1807, "src": "2193:9:10", "stateVariable": false, "storageLocation": "default", @@ -3907,7 +3907,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1743, + "id": 1774, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2193:7:10", @@ -3921,12 +3921,12 @@ }, { "constant": false, - "id": 1746, + "id": 1777, "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1776, + "scope": 1807, "src": "2204:9:10", "stateVariable": false, "storageLocation": "default", @@ -3935,7 +3935,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1745, + "id": 1776, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2204:7:10", @@ -3951,17 +3951,17 @@ "src": "2192:22:10" }, "returnParameters": { - "id": 1750, + "id": 1781, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1749, + "id": 1780, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1776, + "scope": 1807, "src": "2238:7:10", "stateVariable": false, "storageLocation": "default", @@ -3970,7 +3970,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1748, + "id": 1779, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2238:7:10", @@ -3985,7 +3985,7 @@ ], "src": "2237:9:10" }, - "scope": 1863, + "scope": 1894, "src": "2180:459:10", "stateMutability": "pure", "virtual": false, @@ -3993,7 +3993,7 @@ }, { "body": { - "id": 1792, + "id": 1823, "nodeType": "Block", "src": "3168:63:10", "statements": [ @@ -4003,11 +4003,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1787, + "id": 1818, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1779, + "referencedDeclaration": 1810, "src": "3189:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4016,11 +4016,11 @@ }, { "argumentTypes": null, - "id": 1788, + "id": 1819, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1781, + "referencedDeclaration": 1812, "src": "3192:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4030,7 +4030,7 @@ { "argumentTypes": null, "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 1789, + "id": 1820, "isConstant": false, "isLValue": false, "isPure": true, @@ -4061,21 +4061,21 @@ "typeString": "literal_string \"SafeMath: division by zero\"" } ], - "id": 1786, + "id": 1817, "name": "div", "nodeType": "Identifier", "overloadedDeclarations": [ - 1793, - 1821 + 1824, + 1852 ], - "referencedDeclaration": 1821, + "referencedDeclaration": 1852, "src": "3185:3:10", "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": 1790, + "id": 1821, "isConstant": false, "isLValue": false, "isPure": false, @@ -4090,20 +4090,20 @@ "typeString": "uint256" } }, - "functionReturnParameters": 1785, - "id": 1791, + "functionReturnParameters": 1816, + "id": 1822, "nodeType": "Return", "src": "3178:46:10" } ] }, "documentation": { - "id": 1777, + "id": 1808, "nodeType": "StructuredDocumentation", "src": "2645:451:10", "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": 1793, + "id": 1824, "implemented": true, "kind": "function", "modifiers": [], @@ -4111,17 +4111,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1782, + "id": 1813, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1779, + "id": 1810, "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1793, + "scope": 1824, "src": "3114:9:10", "stateVariable": false, "storageLocation": "default", @@ -4130,7 +4130,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1778, + "id": 1809, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3114:7:10", @@ -4144,12 +4144,12 @@ }, { "constant": false, - "id": 1781, + "id": 1812, "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1793, + "scope": 1824, "src": "3125:9:10", "stateVariable": false, "storageLocation": "default", @@ -4158,7 +4158,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1780, + "id": 1811, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3125:7:10", @@ -4174,17 +4174,17 @@ "src": "3113:22:10" }, "returnParameters": { - "id": 1785, + "id": 1816, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1784, + "id": 1815, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1793, + "scope": 1824, "src": "3159:7:10", "stateVariable": false, "storageLocation": "default", @@ -4193,7 +4193,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1783, + "id": 1814, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3159:7:10", @@ -4208,7 +4208,7 @@ ], "src": "3158:9:10" }, - "scope": 1863, + "scope": 1894, "src": "3101:130:10", "stateMutability": "pure", "virtual": false, @@ -4216,7 +4216,7 @@ }, { "body": { - "id": 1820, + "id": 1851, "nodeType": "Block", "src": "3808:177:10", "statements": [ @@ -4230,18 +4230,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1808, + "id": 1839, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1806, + "id": 1837, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1798, + "referencedDeclaration": 1829, "src": "3826:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4253,7 +4253,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1807, + "id": 1838, "isConstant": false, "isLValue": false, "isPure": true, @@ -4276,11 +4276,11 @@ }, { "argumentTypes": null, - "id": 1809, + "id": 1840, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1800, + "referencedDeclaration": 1831, "src": "3833:12:10", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -4299,7 +4299,7 @@ "typeString": "string memory" } ], - "id": 1805, + "id": 1836, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4313,7 +4313,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1810, + "id": 1841, "isConstant": false, "isLValue": false, "isPure": false, @@ -4328,23 +4328,23 @@ "typeString": "tuple()" } }, - "id": 1811, + "id": 1842, "nodeType": "ExpressionStatement", "src": "3818:28:10" }, { "assignments": [ - 1813 + 1844 ], "declarations": [ { "constant": false, - "id": 1813, + "id": 1844, "mutability": "mutable", "name": "c", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1820, + "scope": 1851, "src": "3856:9:10", "stateVariable": false, "storageLocation": "default", @@ -4353,7 +4353,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1812, + "id": 1843, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3856:7:10", @@ -4366,25 +4366,25 @@ "visibility": "internal" } ], - "id": 1817, + "id": 1848, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1816, + "id": 1847, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1814, + "id": 1845, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1796, + "referencedDeclaration": 1827, "src": "3868:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4395,11 +4395,11 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 1815, + "id": 1846, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1798, + "referencedDeclaration": 1829, "src": "3872:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4418,31 +4418,31 @@ { "expression": { "argumentTypes": null, - "id": 1818, + "id": 1849, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1813, + "referencedDeclaration": 1844, "src": "3977:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1804, - "id": 1819, + "functionReturnParameters": 1835, + "id": 1850, "nodeType": "Return", "src": "3970:8:10" } ] }, "documentation": { - "id": 1794, + "id": 1825, "nodeType": "StructuredDocumentation", "src": "3237:471:10", "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": 1821, + "id": 1852, "implemented": true, "kind": "function", "modifiers": [], @@ -4450,17 +4450,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1801, + "id": 1832, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1796, + "id": 1827, "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1821, + "scope": 1852, "src": "3726:9:10", "stateVariable": false, "storageLocation": "default", @@ -4469,7 +4469,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1795, + "id": 1826, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3726:7:10", @@ -4483,12 +4483,12 @@ }, { "constant": false, - "id": 1798, + "id": 1829, "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1821, + "scope": 1852, "src": "3737:9:10", "stateVariable": false, "storageLocation": "default", @@ -4497,7 +4497,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1797, + "id": 1828, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3737:7:10", @@ -4511,12 +4511,12 @@ }, { "constant": false, - "id": 1800, + "id": 1831, "mutability": "mutable", "name": "errorMessage", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1821, + "scope": 1852, "src": "3748:26:10", "stateVariable": false, "storageLocation": "memory", @@ -4525,7 +4525,7 @@ "typeString": "string" }, "typeName": { - "id": 1799, + "id": 1830, "name": "string", "nodeType": "ElementaryTypeName", "src": "3748:6:10", @@ -4541,17 +4541,17 @@ "src": "3725:50:10" }, "returnParameters": { - "id": 1804, + "id": 1835, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1803, + "id": 1834, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1821, + "scope": 1852, "src": "3799:7:10", "stateVariable": false, "storageLocation": "default", @@ -4560,7 +4560,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1802, + "id": 1833, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3799:7:10", @@ -4575,7 +4575,7 @@ ], "src": "3798:9:10" }, - "scope": 1863, + "scope": 1894, "src": "3713:272:10", "stateMutability": "pure", "virtual": false, @@ -4583,7 +4583,7 @@ }, { "body": { - "id": 1837, + "id": 1868, "nodeType": "Block", "src": "4503:61:10", "statements": [ @@ -4593,11 +4593,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1832, + "id": 1863, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1824, + "referencedDeclaration": 1855, "src": "4524:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4606,11 +4606,11 @@ }, { "argumentTypes": null, - "id": 1833, + "id": 1864, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 1857, "src": "4527:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4620,7 +4620,7 @@ { "argumentTypes": null, "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 1834, + "id": 1865, "isConstant": false, "isLValue": false, "isPure": true, @@ -4651,21 +4651,21 @@ "typeString": "literal_string \"SafeMath: modulo by zero\"" } ], - "id": 1831, + "id": 1862, "name": "mod", "nodeType": "Identifier", "overloadedDeclarations": [ - 1838, - 1862 + 1869, + 1893 ], - "referencedDeclaration": 1862, + "referencedDeclaration": 1893, "src": "4520:3:10", "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": 1835, + "id": 1866, "isConstant": false, "isLValue": false, "isPure": false, @@ -4680,20 +4680,20 @@ "typeString": "uint256" } }, - "functionReturnParameters": 1830, - "id": 1836, + "functionReturnParameters": 1861, + "id": 1867, "nodeType": "Return", "src": "4513:44:10" } ] }, "documentation": { - "id": 1822, + "id": 1853, "nodeType": "StructuredDocumentation", "src": "3991:440:10", "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": 1838, + "id": 1869, "implemented": true, "kind": "function", "modifiers": [], @@ -4701,17 +4701,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1827, + "id": 1858, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1824, + "id": 1855, "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1838, + "scope": 1869, "src": "4449:9:10", "stateVariable": false, "storageLocation": "default", @@ -4720,7 +4720,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1823, + "id": 1854, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4449:7:10", @@ -4734,12 +4734,12 @@ }, { "constant": false, - "id": 1826, + "id": 1857, "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1838, + "scope": 1869, "src": "4460:9:10", "stateVariable": false, "storageLocation": "default", @@ -4748,7 +4748,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1825, + "id": 1856, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4460:7:10", @@ -4764,17 +4764,17 @@ "src": "4448:22:10" }, "returnParameters": { - "id": 1830, + "id": 1861, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1829, + "id": 1860, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1838, + "scope": 1869, "src": "4494:7:10", "stateVariable": false, "storageLocation": "default", @@ -4783,7 +4783,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1828, + "id": 1859, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4494:7:10", @@ -4798,7 +4798,7 @@ ], "src": "4493:9:10" }, - "scope": 1863, + "scope": 1894, "src": "4436:128:10", "stateMutability": "pure", "virtual": false, @@ -4806,7 +4806,7 @@ }, { "body": { - "id": 1861, + "id": 1892, "nodeType": "Block", "src": "5130:68:10", "statements": [ @@ -4820,18 +4820,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1853, + "id": 1884, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1851, + "id": 1882, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1843, + "referencedDeclaration": 1874, "src": "5148:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4843,7 +4843,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1852, + "id": 1883, "isConstant": false, "isLValue": false, "isPure": true, @@ -4866,11 +4866,11 @@ }, { "argumentTypes": null, - "id": 1854, + "id": 1885, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1845, + "referencedDeclaration": 1876, "src": "5156:12:10", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -4889,7 +4889,7 @@ "typeString": "string memory" } ], - "id": 1850, + "id": 1881, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4903,7 +4903,7 @@ "typeString": "function (bool,string memory) pure" } }, - "id": 1855, + "id": 1886, "isConstant": false, "isLValue": false, "isPure": false, @@ -4918,7 +4918,7 @@ "typeString": "tuple()" } }, - "id": 1856, + "id": 1887, "nodeType": "ExpressionStatement", "src": "5140:29:10" }, @@ -4929,18 +4929,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1859, + "id": 1890, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1857, + "id": 1888, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1841, + "referencedDeclaration": 1872, "src": "5186:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4951,11 +4951,11 @@ "operator": "%", "rightExpression": { "argumentTypes": null, - "id": 1858, + "id": 1889, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1843, + "referencedDeclaration": 1874, "src": "5190:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4968,20 +4968,20 @@ "typeString": "uint256" } }, - "functionReturnParameters": 1849, - "id": 1860, + "functionReturnParameters": 1880, + "id": 1891, "nodeType": "Return", "src": "5179:12:10" } ] }, "documentation": { - "id": 1839, + "id": 1870, "nodeType": "StructuredDocumentation", "src": "4570:460:10", "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": 1862, + "id": 1893, "implemented": true, "kind": "function", "modifiers": [], @@ -4989,17 +4989,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1846, + "id": 1877, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1841, + "id": 1872, "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1862, + "scope": 1893, "src": "5048:9:10", "stateVariable": false, "storageLocation": "default", @@ -5008,7 +5008,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1840, + "id": 1871, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5048:7:10", @@ -5022,12 +5022,12 @@ }, { "constant": false, - "id": 1843, + "id": 1874, "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1862, + "scope": 1893, "src": "5059:9:10", "stateVariable": false, "storageLocation": "default", @@ -5036,7 +5036,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1842, + "id": 1873, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5059:7:10", @@ -5050,12 +5050,12 @@ }, { "constant": false, - "id": 1845, + "id": 1876, "mutability": "mutable", "name": "errorMessage", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1862, + "scope": 1893, "src": "5070:26:10", "stateVariable": false, "storageLocation": "memory", @@ -5064,7 +5064,7 @@ "typeString": "string" }, "typeName": { - "id": 1844, + "id": 1875, "name": "string", "nodeType": "ElementaryTypeName", "src": "5070:6:10", @@ -5080,17 +5080,17 @@ "src": "5047:50:10" }, "returnParameters": { - "id": 1849, + "id": 1880, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1848, + "id": 1879, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1862, + "scope": 1893, "src": "5121:7:10", "stateVariable": false, "storageLocation": "default", @@ -5099,7 +5099,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1847, + "id": 1878, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5121:7:10", @@ -5114,14 +5114,14 @@ ], "src": "5120:9:10" }, - "scope": 1863, + "scope": 1894, "src": "5035:163:10", "stateMutability": "pure", "virtual": false, "visibility": "internal" } ], - "scope": 1864, + "scope": 1895, "src": "622:4578:10" } ], @@ -5129,16 +5129,20 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:05.971Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.662Z", "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": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file diff --git a/abi/Strings.json b/abi/Strings.json index 35fb45f..8dec556 100644 --- a/abi/Strings.json +++ b/abi/Strings.json @@ -1,9 +1,9 @@ { "contractName": "Strings", "abi": [], - "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x79484115dbfa737054f73e041009a02eeb434dd81be5d684bf4255ad3b5ab558\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12c119699463450c2544f5b9d8709b5e9e9164c62948a79c3ec53423a051d969\",\"dweb:/ipfs/QmPJduzSAaekq447QeFqAp3E7dc8CnNk5ajofckJ4ahA7Q\"]}},\"version\":1}", - "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122049c4a28c4fa9984143b480318bf0084c45542aa4c69645a2fffe6ae9e75b8d6f64736f6c634300060a0033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122049c4a28c4fa9984143b480318bf0084c45542aa4c69645a2fffe6ae9e75b8d6f64736f6c634300060a0033", + "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x79484115dbfa737054f73e041009a02eeb434dd81be5d684bf4255ad3b5ab558\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12c119699463450c2544f5b9d8709b5e9e9164c62948a79c3ec53423a051d969\",\"dweb:/ipfs/QmPJduzSAaekq447QeFqAp3E7dc8CnNk5ajofckJ4ahA7Q\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208fa9e3fcb248f87fb777582b1ee851f0c21d2ff2e31b0ab2cc42e6824d08b1ab64736f6c634300060b0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208fa9e3fcb248f87fb777582b1ee851f0c21d2ff2e31b0ab2cc42e6824d08b1ab64736f6c634300060b0033", "immutableReferences": {}, "sourceMap": "93:834:22:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", "deployedSourceMap": "93:834:22:-:0;;;;;;;;", @@ -13,15 +13,15 @@ "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", "exportedSymbols": { "Strings": [ - 4297 + 4328 ] }, - "id": 4298, + "id": 4329, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 4212, + "id": 4243, "literals": [ "solidity", "^", @@ -37,22 +37,22 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 4213, + "id": 4244, "nodeType": "StructuredDocumentation", "src": "58:34:22", "text": " @dev String operations." }, "fullyImplemented": true, - "id": 4297, + "id": 4328, "linearizedBaseContracts": [ - 4297 + 4328 ], "name": "Strings", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 4295, + "id": 4326, "nodeType": "Block", "src": "273:652:22", "statements": [ @@ -63,18 +63,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4223, + "id": 4254, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4221, + "id": 4252, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4216, + "referencedDeclaration": 4247, "src": "475:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -86,7 +86,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 4222, + "id": 4253, "isConstant": false, "isLValue": false, "isPure": true, @@ -108,11 +108,11 @@ } }, "falseBody": null, - "id": 4227, + "id": 4258, "nodeType": "IfStatement", "src": "471:51:22", "trueBody": { - "id": 4226, + "id": 4257, "nodeType": "Block", "src": "487:35:22", "statements": [ @@ -120,7 +120,7 @@ "expression": { "argumentTypes": null, "hexValue": "30", - "id": 4224, + "id": 4255, "isConstant": false, "isLValue": false, "isPure": true, @@ -135,8 +135,8 @@ }, "value": "0" }, - "functionReturnParameters": 4220, - "id": 4225, + "functionReturnParameters": 4251, + "id": 4256, "nodeType": "Return", "src": "501:10:22" } @@ -145,17 +145,17 @@ }, { "assignments": [ - 4229 + 4260 ], "declarations": [ { "constant": false, - "id": 4229, + "id": 4260, "mutability": "mutable", "name": "temp", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4295, + "scope": 4326, "src": "531:12:22", "stateVariable": false, "storageLocation": "default", @@ -164,7 +164,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4228, + "id": 4259, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "531:7:22", @@ -177,14 +177,14 @@ "visibility": "internal" } ], - "id": 4231, + "id": 4262, "initialValue": { "argumentTypes": null, - "id": 4230, + "id": 4261, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4216, + "referencedDeclaration": 4247, "src": "546:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -196,17 +196,17 @@ }, { "assignments": [ - 4233 + 4264 ], "declarations": [ { "constant": false, - "id": 4233, + "id": 4264, "mutability": "mutable", "name": "digits", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4295, + "scope": 4326, "src": "561:14:22", "stateVariable": false, "storageLocation": "default", @@ -215,7 +215,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4232, + "id": 4263, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "561:7:22", @@ -228,21 +228,21 @@ "visibility": "internal" } ], - "id": 4234, + "id": 4265, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "561:14:22" }, { "body": { - "id": 4245, + "id": 4276, "nodeType": "Block", "src": "603:57:22", "statements": [ { "expression": { "argumentTypes": null, - "id": 4239, + "id": 4270, "isConstant": false, "isLValue": false, "isPure": false, @@ -253,11 +253,11 @@ "src": "617:8:22", "subExpression": { "argumentTypes": null, - "id": 4238, + "id": 4269, "name": "digits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4233, + "referencedDeclaration": 4264, "src": "617:6:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -269,25 +269,25 @@ "typeString": "uint256" } }, - "id": 4240, + "id": 4271, "nodeType": "ExpressionStatement", "src": "617:8:22" }, { "expression": { "argumentTypes": null, - "id": 4243, + "id": 4274, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4241, + "id": 4272, "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4229, + "referencedDeclaration": 4260, "src": "639:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -299,7 +299,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3130", - "id": 4242, + "id": 4273, "isConstant": false, "isLValue": false, "isPure": true, @@ -320,7 +320,7 @@ "typeString": "uint256" } }, - "id": 4244, + "id": 4275, "nodeType": "ExpressionStatement", "src": "639:10:22" } @@ -332,18 +332,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4237, + "id": 4268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4235, + "id": 4266, "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4229, + "referencedDeclaration": 4260, "src": "592:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -355,7 +355,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 4236, + "id": 4267, "isConstant": false, "isLValue": false, "isPure": true, @@ -376,23 +376,23 @@ "typeString": "bool" } }, - "id": 4246, + "id": 4277, "nodeType": "WhileStatement", "src": "585:75:22" }, { "assignments": [ - 4248 + 4279 ], "declarations": [ { "constant": false, - "id": 4248, + "id": 4279, "mutability": "mutable", "name": "buffer", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4295, + "scope": 4326, "src": "669:19:22", "stateVariable": false, "storageLocation": "memory", @@ -401,7 +401,7 @@ "typeString": "bytes" }, "typeName": { - "id": 4247, + "id": 4278, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "669:5:22", @@ -414,17 +414,17 @@ "visibility": "internal" } ], - "id": 4253, + "id": 4284, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 4251, + "id": 4282, "name": "digits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4233, + "referencedDeclaration": 4264, "src": "701:6:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -439,7 +439,7 @@ "typeString": "uint256" } ], - "id": 4250, + "id": 4281, "isConstant": false, "isLValue": false, "isPure": true, @@ -451,7 +451,7 @@ "typeString": "function (uint256) pure returns (bytes memory)" }, "typeName": { - "id": 4249, + "id": 4280, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "695:5:22", @@ -461,7 +461,7 @@ } } }, - "id": 4252, + "id": 4283, "isConstant": false, "isLValue": false, "isPure": false, @@ -481,17 +481,17 @@ }, { "assignments": [ - 4255 + 4286 ], "declarations": [ { "constant": false, - "id": 4255, + "id": 4286, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4295, + "scope": 4326, "src": "718:13:22", "stateVariable": false, "storageLocation": "default", @@ -500,7 +500,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4254, + "id": 4285, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "718:7:22", @@ -513,25 +513,25 @@ "visibility": "internal" } ], - "id": 4259, + "id": 4290, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4258, + "id": 4289, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4256, + "id": 4287, "name": "digits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4233, + "referencedDeclaration": 4264, "src": "734:6:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -543,7 +543,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 4257, + "id": 4288, "isConstant": false, "isLValue": false, "isPure": true, @@ -570,18 +570,18 @@ { "expression": { "argumentTypes": null, - "id": 4262, + "id": 4293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4260, + "id": 4291, "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4229, + "referencedDeclaration": 4260, "src": "754:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -592,11 +592,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 4261, + "id": 4292, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4216, + "referencedDeclaration": 4247, "src": "761:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -609,20 +609,20 @@ "typeString": "uint256" } }, - "id": 4263, + "id": 4294, "nodeType": "ExpressionStatement", "src": "754:12:22" }, { "body": { - "id": 4288, + "id": 4319, "nodeType": "Block", "src": "794:94:22", "statements": [ { "expression": { "argumentTypes": null, - "id": 4282, + "id": 4313, "isConstant": false, "isLValue": false, "isPure": false, @@ -631,21 +631,21 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4267, + "id": 4298, "name": "buffer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4248, + "referencedDeclaration": 4279, "src": "808:6:22", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 4270, + "id": 4301, "indexExpression": { "argumentTypes": null, - "id": 4269, + "id": 4300, "isConstant": false, "isLValue": false, "isPure": false, @@ -656,11 +656,11 @@ "src": "815:7:22", "subExpression": { "argumentTypes": null, - "id": 4268, + "id": 4299, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4255, + "referencedDeclaration": 4286, "src": "815:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -697,7 +697,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4279, + "id": 4310, "isConstant": false, "isLValue": false, "isPure": false, @@ -705,7 +705,7 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3438", - "id": 4275, + "id": 4306, "isConstant": false, "isLValue": false, "isPure": true, @@ -728,18 +728,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4278, + "id": 4309, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4276, + "id": 4307, "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4229, + "referencedDeclaration": 4260, "src": "842:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -751,7 +751,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 4277, + "id": 4308, "isConstant": false, "isLValue": false, "isPure": true, @@ -786,7 +786,7 @@ "typeString": "uint256" } ], - "id": 4274, + "id": 4305, "isConstant": false, "isLValue": false, "isPure": true, @@ -798,7 +798,7 @@ "typeString": "type(uint8)" }, "typeName": { - "id": 4273, + "id": 4304, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "831:5:22", @@ -808,7 +808,7 @@ } } }, - "id": 4280, + "id": 4311, "isConstant": false, "isLValue": false, "isPure": false, @@ -831,7 +831,7 @@ "typeString": "uint8" } ], - "id": 4272, + "id": 4303, "isConstant": false, "isLValue": false, "isPure": true, @@ -843,7 +843,7 @@ "typeString": "type(bytes1)" }, "typeName": { - "id": 4271, + "id": 4302, "name": "byte", "nodeType": "ElementaryTypeName", "src": "826:4:22", @@ -853,7 +853,7 @@ } } }, - "id": 4281, + "id": 4312, "isConstant": false, "isLValue": false, "isPure": false, @@ -874,25 +874,25 @@ "typeString": "bytes1" } }, - "id": 4283, + "id": 4314, "nodeType": "ExpressionStatement", "src": "808:45:22" }, { "expression": { "argumentTypes": null, - "id": 4286, + "id": 4317, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4284, + "id": 4315, "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4229, + "referencedDeclaration": 4260, "src": "867:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -904,7 +904,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3130", - "id": 4285, + "id": 4316, "isConstant": false, "isLValue": false, "isPure": true, @@ -925,7 +925,7 @@ "typeString": "uint256" } }, - "id": 4287, + "id": 4318, "nodeType": "ExpressionStatement", "src": "867:10:22" } @@ -937,18 +937,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4266, + "id": 4297, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4264, + "id": 4295, "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4229, + "referencedDeclaration": 4260, "src": "783:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -960,7 +960,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 4265, + "id": 4296, "isConstant": false, "isLValue": false, "isPure": true, @@ -981,7 +981,7 @@ "typeString": "bool" } }, - "id": 4289, + "id": 4320, "nodeType": "WhileStatement", "src": "776:112:22" }, @@ -991,11 +991,11 @@ "arguments": [ { "argumentTypes": null, - "id": 4292, + "id": 4323, "name": "buffer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4248, + "referencedDeclaration": 4279, "src": "911:6:22", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -1010,7 +1010,7 @@ "typeString": "bytes memory" } ], - "id": 4291, + "id": 4322, "isConstant": false, "isLValue": false, "isPure": true, @@ -1022,7 +1022,7 @@ "typeString": "type(string storage pointer)" }, "typeName": { - "id": 4290, + "id": 4321, "name": "string", "nodeType": "ElementaryTypeName", "src": "904:6:22", @@ -1032,7 +1032,7 @@ } } }, - "id": 4293, + "id": 4324, "isConstant": false, "isLValue": false, "isPure": false, @@ -1047,20 +1047,20 @@ "typeString": "string memory" } }, - "functionReturnParameters": 4220, - "id": 4294, + "functionReturnParameters": 4251, + "id": 4325, "nodeType": "Return", "src": "897:21:22" } ] }, "documentation": { - "id": 4214, + "id": 4245, "nodeType": "StructuredDocumentation", "src": "115:82:22", "text": " @dev Converts a `uint256` to its ASCII `string` representation." }, - "id": 4296, + "id": 4327, "implemented": true, "kind": "function", "modifiers": [], @@ -1068,17 +1068,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4217, + "id": 4248, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4216, + "id": 4247, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4296, + "scope": 4327, "src": "220:13:22", "stateVariable": false, "storageLocation": "default", @@ -1087,7 +1087,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4215, + "id": 4246, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "220:7:22", @@ -1103,17 +1103,17 @@ "src": "219:15:22" }, "returnParameters": { - "id": 4220, + "id": 4251, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4219, + "id": 4250, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4296, + "scope": 4327, "src": "258:13:22", "stateVariable": false, "storageLocation": "memory", @@ -1122,7 +1122,7 @@ "typeString": "string" }, "typeName": { - "id": 4218, + "id": 4249, "name": "string", "nodeType": "ElementaryTypeName", "src": "258:6:22", @@ -1137,14 +1137,14 @@ ], "src": "257:15:22" }, - "scope": 4297, + "scope": 4328, "src": "202:723:22", "stateMutability": "pure", "virtual": false, "visibility": "internal" } ], - "scope": 4298, + "scope": 4329, "src": "93:834:22" } ], @@ -1154,15 +1154,15 @@ "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", "exportedSymbols": { "Strings": [ - 4297 + 4328 ] }, - "id": 4298, + "id": 4329, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 4212, + "id": 4243, "literals": [ "solidity", "^", @@ -1178,22 +1178,22 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 4213, + "id": 4244, "nodeType": "StructuredDocumentation", "src": "58:34:22", "text": " @dev String operations." }, "fullyImplemented": true, - "id": 4297, + "id": 4328, "linearizedBaseContracts": [ - 4297 + 4328 ], "name": "Strings", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 4295, + "id": 4326, "nodeType": "Block", "src": "273:652:22", "statements": [ @@ -1204,18 +1204,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4223, + "id": 4254, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4221, + "id": 4252, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4216, + "referencedDeclaration": 4247, "src": "475:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1227,7 +1227,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 4222, + "id": 4253, "isConstant": false, "isLValue": false, "isPure": true, @@ -1249,11 +1249,11 @@ } }, "falseBody": null, - "id": 4227, + "id": 4258, "nodeType": "IfStatement", "src": "471:51:22", "trueBody": { - "id": 4226, + "id": 4257, "nodeType": "Block", "src": "487:35:22", "statements": [ @@ -1261,7 +1261,7 @@ "expression": { "argumentTypes": null, "hexValue": "30", - "id": 4224, + "id": 4255, "isConstant": false, "isLValue": false, "isPure": true, @@ -1276,8 +1276,8 @@ }, "value": "0" }, - "functionReturnParameters": 4220, - "id": 4225, + "functionReturnParameters": 4251, + "id": 4256, "nodeType": "Return", "src": "501:10:22" } @@ -1286,17 +1286,17 @@ }, { "assignments": [ - 4229 + 4260 ], "declarations": [ { "constant": false, - "id": 4229, + "id": 4260, "mutability": "mutable", "name": "temp", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4295, + "scope": 4326, "src": "531:12:22", "stateVariable": false, "storageLocation": "default", @@ -1305,7 +1305,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4228, + "id": 4259, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "531:7:22", @@ -1318,14 +1318,14 @@ "visibility": "internal" } ], - "id": 4231, + "id": 4262, "initialValue": { "argumentTypes": null, - "id": 4230, + "id": 4261, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4216, + "referencedDeclaration": 4247, "src": "546:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1337,17 +1337,17 @@ }, { "assignments": [ - 4233 + 4264 ], "declarations": [ { "constant": false, - "id": 4233, + "id": 4264, "mutability": "mutable", "name": "digits", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4295, + "scope": 4326, "src": "561:14:22", "stateVariable": false, "storageLocation": "default", @@ -1356,7 +1356,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4232, + "id": 4263, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "561:7:22", @@ -1369,21 +1369,21 @@ "visibility": "internal" } ], - "id": 4234, + "id": 4265, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "561:14:22" }, { "body": { - "id": 4245, + "id": 4276, "nodeType": "Block", "src": "603:57:22", "statements": [ { "expression": { "argumentTypes": null, - "id": 4239, + "id": 4270, "isConstant": false, "isLValue": false, "isPure": false, @@ -1394,11 +1394,11 @@ "src": "617:8:22", "subExpression": { "argumentTypes": null, - "id": 4238, + "id": 4269, "name": "digits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4233, + "referencedDeclaration": 4264, "src": "617:6:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1410,25 +1410,25 @@ "typeString": "uint256" } }, - "id": 4240, + "id": 4271, "nodeType": "ExpressionStatement", "src": "617:8:22" }, { "expression": { "argumentTypes": null, - "id": 4243, + "id": 4274, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4241, + "id": 4272, "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4229, + "referencedDeclaration": 4260, "src": "639:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1440,7 +1440,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3130", - "id": 4242, + "id": 4273, "isConstant": false, "isLValue": false, "isPure": true, @@ -1461,7 +1461,7 @@ "typeString": "uint256" } }, - "id": 4244, + "id": 4275, "nodeType": "ExpressionStatement", "src": "639:10:22" } @@ -1473,18 +1473,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4237, + "id": 4268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4235, + "id": 4266, "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4229, + "referencedDeclaration": 4260, "src": "592:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1496,7 +1496,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 4236, + "id": 4267, "isConstant": false, "isLValue": false, "isPure": true, @@ -1517,23 +1517,23 @@ "typeString": "bool" } }, - "id": 4246, + "id": 4277, "nodeType": "WhileStatement", "src": "585:75:22" }, { "assignments": [ - 4248 + 4279 ], "declarations": [ { "constant": false, - "id": 4248, + "id": 4279, "mutability": "mutable", "name": "buffer", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4295, + "scope": 4326, "src": "669:19:22", "stateVariable": false, "storageLocation": "memory", @@ -1542,7 +1542,7 @@ "typeString": "bytes" }, "typeName": { - "id": 4247, + "id": 4278, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "669:5:22", @@ -1555,17 +1555,17 @@ "visibility": "internal" } ], - "id": 4253, + "id": 4284, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 4251, + "id": 4282, "name": "digits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4233, + "referencedDeclaration": 4264, "src": "701:6:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1580,7 +1580,7 @@ "typeString": "uint256" } ], - "id": 4250, + "id": 4281, "isConstant": false, "isLValue": false, "isPure": true, @@ -1592,7 +1592,7 @@ "typeString": "function (uint256) pure returns (bytes memory)" }, "typeName": { - "id": 4249, + "id": 4280, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "695:5:22", @@ -1602,7 +1602,7 @@ } } }, - "id": 4252, + "id": 4283, "isConstant": false, "isLValue": false, "isPure": false, @@ -1622,17 +1622,17 @@ }, { "assignments": [ - 4255 + 4286 ], "declarations": [ { "constant": false, - "id": 4255, + "id": 4286, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4295, + "scope": 4326, "src": "718:13:22", "stateVariable": false, "storageLocation": "default", @@ -1641,7 +1641,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4254, + "id": 4285, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "718:7:22", @@ -1654,25 +1654,25 @@ "visibility": "internal" } ], - "id": 4259, + "id": 4290, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4258, + "id": 4289, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4256, + "id": 4287, "name": "digits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4233, + "referencedDeclaration": 4264, "src": "734:6:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1684,7 +1684,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 4257, + "id": 4288, "isConstant": false, "isLValue": false, "isPure": true, @@ -1711,18 +1711,18 @@ { "expression": { "argumentTypes": null, - "id": 4262, + "id": 4293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4260, + "id": 4291, "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4229, + "referencedDeclaration": 4260, "src": "754:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1733,11 +1733,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 4261, + "id": 4292, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4216, + "referencedDeclaration": 4247, "src": "761:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1750,20 +1750,20 @@ "typeString": "uint256" } }, - "id": 4263, + "id": 4294, "nodeType": "ExpressionStatement", "src": "754:12:22" }, { "body": { - "id": 4288, + "id": 4319, "nodeType": "Block", "src": "794:94:22", "statements": [ { "expression": { "argumentTypes": null, - "id": 4282, + "id": 4313, "isConstant": false, "isLValue": false, "isPure": false, @@ -1772,21 +1772,21 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4267, + "id": 4298, "name": "buffer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4248, + "referencedDeclaration": 4279, "src": "808:6:22", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 4270, + "id": 4301, "indexExpression": { "argumentTypes": null, - "id": 4269, + "id": 4300, "isConstant": false, "isLValue": false, "isPure": false, @@ -1797,11 +1797,11 @@ "src": "815:7:22", "subExpression": { "argumentTypes": null, - "id": 4268, + "id": 4299, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4255, + "referencedDeclaration": 4286, "src": "815:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1838,7 +1838,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4279, + "id": 4310, "isConstant": false, "isLValue": false, "isPure": false, @@ -1846,7 +1846,7 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3438", - "id": 4275, + "id": 4306, "isConstant": false, "isLValue": false, "isPure": true, @@ -1869,18 +1869,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4278, + "id": 4309, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4276, + "id": 4307, "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4229, + "referencedDeclaration": 4260, "src": "842:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1892,7 +1892,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 4277, + "id": 4308, "isConstant": false, "isLValue": false, "isPure": true, @@ -1927,7 +1927,7 @@ "typeString": "uint256" } ], - "id": 4274, + "id": 4305, "isConstant": false, "isLValue": false, "isPure": true, @@ -1939,7 +1939,7 @@ "typeString": "type(uint8)" }, "typeName": { - "id": 4273, + "id": 4304, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "831:5:22", @@ -1949,7 +1949,7 @@ } } }, - "id": 4280, + "id": 4311, "isConstant": false, "isLValue": false, "isPure": false, @@ -1972,7 +1972,7 @@ "typeString": "uint8" } ], - "id": 4272, + "id": 4303, "isConstant": false, "isLValue": false, "isPure": true, @@ -1984,7 +1984,7 @@ "typeString": "type(bytes1)" }, "typeName": { - "id": 4271, + "id": 4302, "name": "byte", "nodeType": "ElementaryTypeName", "src": "826:4:22", @@ -1994,7 +1994,7 @@ } } }, - "id": 4281, + "id": 4312, "isConstant": false, "isLValue": false, "isPure": false, @@ -2015,25 +2015,25 @@ "typeString": "bytes1" } }, - "id": 4283, + "id": 4314, "nodeType": "ExpressionStatement", "src": "808:45:22" }, { "expression": { "argumentTypes": null, - "id": 4286, + "id": 4317, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4284, + "id": 4315, "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4229, + "referencedDeclaration": 4260, "src": "867:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2045,7 +2045,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3130", - "id": 4285, + "id": 4316, "isConstant": false, "isLValue": false, "isPure": true, @@ -2066,7 +2066,7 @@ "typeString": "uint256" } }, - "id": 4287, + "id": 4318, "nodeType": "ExpressionStatement", "src": "867:10:22" } @@ -2078,18 +2078,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4266, + "id": 4297, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4264, + "id": 4295, "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4229, + "referencedDeclaration": 4260, "src": "783:4:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2101,7 +2101,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 4265, + "id": 4296, "isConstant": false, "isLValue": false, "isPure": true, @@ -2122,7 +2122,7 @@ "typeString": "bool" } }, - "id": 4289, + "id": 4320, "nodeType": "WhileStatement", "src": "776:112:22" }, @@ -2132,11 +2132,11 @@ "arguments": [ { "argumentTypes": null, - "id": 4292, + "id": 4323, "name": "buffer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4248, + "referencedDeclaration": 4279, "src": "911:6:22", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2151,7 +2151,7 @@ "typeString": "bytes memory" } ], - "id": 4291, + "id": 4322, "isConstant": false, "isLValue": false, "isPure": true, @@ -2163,7 +2163,7 @@ "typeString": "type(string storage pointer)" }, "typeName": { - "id": 4290, + "id": 4321, "name": "string", "nodeType": "ElementaryTypeName", "src": "904:6:22", @@ -2173,7 +2173,7 @@ } } }, - "id": 4293, + "id": 4324, "isConstant": false, "isLValue": false, "isPure": false, @@ -2188,20 +2188,20 @@ "typeString": "string memory" } }, - "functionReturnParameters": 4220, - "id": 4294, + "functionReturnParameters": 4251, + "id": 4325, "nodeType": "Return", "src": "897:21:22" } ] }, "documentation": { - "id": 4214, + "id": 4245, "nodeType": "StructuredDocumentation", "src": "115:82:22", "text": " @dev Converts a `uint256` to its ASCII `string` representation." }, - "id": 4296, + "id": 4327, "implemented": true, "kind": "function", "modifiers": [], @@ -2209,17 +2209,17 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 4217, + "id": 4248, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4216, + "id": 4247, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4296, + "scope": 4327, "src": "220:13:22", "stateVariable": false, "storageLocation": "default", @@ -2228,7 +2228,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4215, + "id": 4246, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "220:7:22", @@ -2244,17 +2244,17 @@ "src": "219:15:22" }, "returnParameters": { - "id": 4220, + "id": 4251, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4219, + "id": 4250, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 4296, + "scope": 4327, "src": "258:13:22", "stateVariable": false, "storageLocation": "memory", @@ -2263,7 +2263,7 @@ "typeString": "string" }, "typeName": { - "id": 4218, + "id": 4249, "name": "string", "nodeType": "ElementaryTypeName", "src": "258:6:22", @@ -2278,14 +2278,14 @@ ], "src": "257:15:22" }, - "scope": 4297, + "scope": 4328, "src": "202:723:22", "stateMutability": "pure", "virtual": false, "visibility": "internal" } ], - "scope": 4298, + "scope": 4329, "src": "93:834:22" } ], @@ -2293,16 +2293,20 @@ }, "compiler": { "name": "solc", - "version": "0.6.10+commit.00c0fcaf.Emscripten.clang" + "version": "0.6.11+commit.5ef660b1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.1.0", - "updatedAt": "2020-06-29T16:16:06.026Z", + "schemaVersion": "3.2.2", + "updatedAt": "2020-07-20T16:55:08.752Z", "devdoc": { "details": "String operations.", - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } \ No newline at end of file