Files
dungeons-and-dragons-nft/build/contracts/EnumerableMap.json
2020-11-20 18:39:26 -05:00

11974 lines
509 KiB
JSON

{
"contractName": "EnumerableMap",
"abi": [],
"metadata": "{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"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\",\"urls\":[\"bzz-raw://198d566157120c526bd6b5086b32cae85a11389b8a538f533ba9f9447915da0e\",\"dweb:/ipfs/QmeE6d8KWERx7f1FVS5tMnitNJxBm2yWXRSEUBF7R6voLh\"]}},\"version\":1}",
"bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f4ace167cd6d5b2c26c6991d2eac54e81b0493d2864a8cb4d2fe82bbb730a52464736f6c63430006060033",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f4ace167cd6d5b2c26c6991d2eac54e81b0493d2864a8cb4d2fe82bbb730a52464736f6c63430006060033",
"immutableReferences": {},
"sourceMap": "764:7555:18:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24",
"deployedSourceMap": "764:7555:18:-:0;;;;;;12:1:-1;9;2:12",
"source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.6.0;\n\n/**\n * @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 *\n * Maps have the following properties:\n *\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 * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableMap for EnumerableMap.UintToAddressMap;\n *\n * // Declare a set state variable\n * EnumerableMap.UintToAddressMap private myMap;\n * }\n * ```\n *\n * As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n * supported.\n */\nlibrary EnumerableMap {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Map type with\n // bytes32 keys and values.\n // The Map implementation uses private functions, and user-facing\n // implementations (such as Uint256ToAddressMap) are just wrappers around\n // the underlying Map.\n // This means that we can only create new EnumerableMaps for types that fit\n // in bytes32.\n\n struct MapEntry {\n bytes32 _key;\n bytes32 _value;\n }\n\n struct Map {\n // Storage of map keys and values\n MapEntry[] _entries;\n\n // Position of the entry defined by a key in the `entries` array, plus 1\n // because index 0 means a key is not in the map.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function _set(Map storage map, bytes32 key, bytes32 value) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex == 0) { // Equivalent to !contains(map, key)\n map._entries.push(MapEntry({ _key: key, _value: value }));\n // The entry is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n map._indexes[key] = map._entries.length;\n return true;\n } else {\n map._entries[keyIndex - 1]._value = value;\n return false;\n }\n }\n\n /**\n * @dev Removes a key-value pair from a map. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function _remove(Map storage map, bytes32 key) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex != 0) { // Equivalent to contains(map, key)\n // To delete a key-value pair from the _entries array in O(1), we swap the entry to delete with the last one\n // in the array, and then remove the last entry (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = keyIndex - 1;\n uint256 lastIndex = map._entries.length - 1;\n\n // When the entry to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n MapEntry storage lastEntry = map._entries[lastIndex];\n\n // Move the last entry to the index where the entry to delete is\n map._entries[toDeleteIndex] = lastEntry;\n // Update the index for the moved entry\n map._indexes[lastEntry._key] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved entry was stored\n map._entries.pop();\n\n // Delete the index for the deleted slot\n delete map._indexes[key];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function _contains(Map storage map, bytes32 key) private view returns (bool) {\n return map._indexes[key] != 0;\n }\n\n /**\n * @dev Returns the number of key-value pairs in the map. O(1).\n */\n function _length(Map storage map) private view returns (uint256) {\n return map._entries.length;\n }\n\n /**\n * @dev Returns the key-value pair stored at position `index` in the map. O(1).\n *\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 *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) {\n require(map._entries.length > index, \"EnumerableMap: index out of bounds\");\n\n MapEntry storage entry = map._entries[index];\n return (entry._key, entry._value);\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function _get(Map storage map, bytes32 key) private view returns (bytes32) {\n return _get(map, key, \"EnumerableMap: nonexistent key\");\n }\n\n /**\n * @dev Same as {_get}, with a custom error message when `key` is not in the map.\n */\n function _get(Map storage map, bytes32 key, string memory errorMessage) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, errorMessage); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n // UintToAddressMap\n\n struct UintToAddressMap {\n Map _inner;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function set(UintToAddressMap storage map, uint256 key, address value) internal returns (bool) {\n return _set(map._inner, bytes32(key), bytes32(uint256(value)));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) {\n return _remove(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) {\n return _contains(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns the number of elements in the map. O(1).\n */\n function length(UintToAddressMap storage map) internal view returns (uint256) {\n return _length(map._inner);\n }\n\n /**\n * @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 *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) {\n (bytes32 key, bytes32 value) = _at(map._inner, index);\n return (uint256(key), address(uint256(value)));\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function get(UintToAddressMap storage map, uint256 key) internal view returns (address) {\n return address(uint256(_get(map._inner, bytes32(key))));\n }\n\n /**\n * @dev Same as {get}, with a custom error message when `key` is not in the map.\n */\n function get(UintToAddressMap storage map, uint256 key, string memory errorMessage) internal view returns (address) {\n return address(uint256(_get(map._inner, bytes32(key), errorMessage)));\n }\n}\n",
"sourcePath": "@openzeppelin/contracts/utils/EnumerableMap.sol",
"ast": {
"absolutePath": "@openzeppelin/contracts/utils/EnumerableMap.sol",
"exportedSymbols": {
"EnumerableMap": [
3055
]
},
"id": 3056,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2602,
"literals": [
"solidity",
"^",
"0.6",
".0"
],
"nodeType": "PragmaDirective",
"src": "33:23:18"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": {
"id": 2603,
"nodeType": "StructuredDocumentation",
"src": "58:705:18",
"text": "@dev Library for managing an enumerable variant of Solidity's\nhttps://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\ntype.\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 * ```\ncontract 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\nsupported."
},
"fullyImplemented": true,
"id": 3055,
"linearizedBaseContracts": [
3055
],
"name": "EnumerableMap",
"nodeType": "ContractDefinition",
"nodes": [
{
"canonicalName": "EnumerableMap.MapEntry",
"id": 2608,
"members": [
{
"constant": false,
"id": 2605,
"mutability": "mutable",
"name": "_key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2608,
"src": "1276:12:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2604,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1276:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2607,
"mutability": "mutable",
"name": "_value",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2608,
"src": "1298:14:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2606,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1298:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "MapEntry",
"nodeType": "StructDefinition",
"scope": 3055,
"src": "1250:69:18",
"visibility": "public"
},
{
"canonicalName": "EnumerableMap.Map",
"id": 2616,
"members": [
{
"constant": false,
"id": 2611,
"mutability": "mutable",
"name": "_entries",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2616,
"src": "1388:19:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 2609,
"name": "MapEntry",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2608,
"src": "1388:8:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry"
}
},
"id": 2610,
"length": null,
"nodeType": "ArrayTypeName",
"src": "1388:10:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2615,
"mutability": "mutable",
"name": "_indexes",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2616,
"src": "1557:37:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"typeName": {
"id": 2614,
"keyType": {
"id": 2612,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1566:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "1557:28:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"valueType": {
"id": 2613,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1577:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
}
],
"name": "Map",
"nodeType": "StructDefinition",
"scope": 3055,
"src": "1325:276:18",
"visibility": "public"
},
{
"body": {
"id": 2677,
"nodeType": "Block",
"src": "1910:596:18",
"statements": [
{
"assignments": [
2629
],
"declarations": [
{
"constant": false,
"id": 2629,
"mutability": "mutable",
"name": "keyIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2677,
"src": "2018:16:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2628,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2018:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2634,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2630,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2619,
"src": "2037:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2631,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_indexes",
"nodeType": "MemberAccess",
"referencedDeclaration": 2615,
"src": "2037:12:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 2633,
"indexExpression": {
"argumentTypes": null,
"id": 2632,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2621,
"src": "2050:3:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2037:17:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2018:36:18"
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2637,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 2635,
"name": "keyIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2629,
"src": "2069:8:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 2636,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2081:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "2069:13:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 2675,
"nodeType": "Block",
"src": "2408:92:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 2671,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2662,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2619,
"src": "2422:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2667,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "2422:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2668,
"indexExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2666,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 2664,
"name": "keyIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2629,
"src": "2435:8:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 2665,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2446:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "2435:12:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2422:26:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref"
}
},
"id": 2669,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "_value",
"nodeType": "MemberAccess",
"referencedDeclaration": 2607,
"src": "2422:33:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 2670,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2623,
"src": "2458:5:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "2422:41:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 2672,
"nodeType": "ExpressionStatement",
"src": "2422:41:18"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 2673,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2484:5:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 2627,
"id": 2674,
"nodeType": "Return",
"src": "2477:12:18"
}
]
},
"id": 2676,
"nodeType": "IfStatement",
"src": "2065:435:18",
"trueBody": {
"id": 2661,
"nodeType": "Block",
"src": "2084:318:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2644,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2621,
"src": "2170:3:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"id": 2645,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2623,
"src": "2183:5:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 2643,
"name": "MapEntry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2608,
"src": "2153:8:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_MapEntry_$2608_storage_ptr_$",
"typeString": "type(struct EnumerableMap.MapEntry storage pointer)"
}
},
"id": 2646,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [
"_key",
"_value"
],
"nodeType": "FunctionCall",
"src": "2153:38:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_memory_ptr",
"typeString": "struct EnumerableMap.MapEntry memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_MapEntry_$2608_memory_ptr",
"typeString": "struct EnumerableMap.MapEntry memory"
}
],
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2638,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2619,
"src": "2135:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2641,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "2135:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2642,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2135:17:18",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_MapEntry_$2608_storage_$returns$__$",
"typeString": "function (struct EnumerableMap.MapEntry storage ref)"
}
},
"id": 2647,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2135:57:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2648,
"nodeType": "ExpressionStatement",
"src": "2135:57:18"
},
{
"expression": {
"argumentTypes": null,
"id": 2657,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2649,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2619,
"src": "2327:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2652,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_indexes",
"nodeType": "MemberAccess",
"referencedDeclaration": 2615,
"src": "2327:12:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 2653,
"indexExpression": {
"argumentTypes": null,
"id": 2651,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2621,
"src": "2340:3:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2327:17:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2654,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2619,
"src": "2347:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2655,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "2347:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2656,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2347:19:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2327:39:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2658,
"nodeType": "ExpressionStatement",
"src": "2327:39:18"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 2659,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2387:4:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 2627,
"id": 2660,
"nodeType": "Return",
"src": "2380:11:18"
}
]
}
}
]
},
"documentation": {
"id": 2617,
"nodeType": "StructuredDocumentation",
"src": "1607:216:18",
"text": "@dev Adds a key-value pair to a map, or updates the value for an existing\nkey. O(1).\n * Returns true if the key was added to the map, that is if it was not\nalready present."
},
"id": 2678,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_set",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2624,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2619,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2678,
"src": "1842:15:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
},
"typeName": {
"contractScope": null,
"id": 2618,
"name": "Map",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2616,
"src": "1842:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2621,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2678,
"src": "1859:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2620,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1859:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2623,
"mutability": "mutable",
"name": "value",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2678,
"src": "1872:13:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2622,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1872:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1841:45:18"
},
"returnParameters": {
"id": 2627,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2626,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2678,
"src": "1904:4:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2625,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1904:4:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1903:6:18"
},
"scope": 3055,
"src": "1828:678:18",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "private"
},
{
"body": {
"id": 2758,
"nodeType": "Block",
"src": "2744:1447:18",
"statements": [
{
"assignments": [
2689
],
"declarations": [
{
"constant": false,
"id": 2689,
"mutability": "mutable",
"name": "keyIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2758,
"src": "2852:16:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2688,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2852:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2694,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2690,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2681,
"src": "2871:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2691,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_indexes",
"nodeType": "MemberAccess",
"referencedDeclaration": 2615,
"src": "2871:12:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 2693,
"indexExpression": {
"argumentTypes": null,
"id": 2692,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2683,
"src": "2884:3:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2871:17:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2852:36:18"
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2697,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 2695,
"name": "keyIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2689,
"src": "2903:8:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 2696,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2915:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "2903:13:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 2756,
"nodeType": "Block",
"src": "4148:37:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 2754,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4169:5:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 2687,
"id": 2755,
"nodeType": "Return",
"src": "4162:12:18"
}
]
},
"id": 2757,
"nodeType": "IfStatement",
"src": "2899:1286:18",
"trueBody": {
"id": 2753,
"nodeType": "Block",
"src": "2918:1224:18",
"statements": [
{
"assignments": [
2699
],
"declarations": [
{
"constant": false,
"id": 2699,
"mutability": "mutable",
"name": "toDeleteIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2753,
"src": "3259:21:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2698,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3259:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2703,
"initialValue": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2702,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 2700,
"name": "keyIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2689,
"src": "3283:8:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 2701,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3294:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "3283:12:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3259:36:18"
},
{
"assignments": [
2705
],
"declarations": [
{
"constant": false,
"id": 2705,
"mutability": "mutable",
"name": "lastIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2753,
"src": "3309:17:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2704,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3309:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2711,
"initialValue": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2710,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2706,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2681,
"src": "3329:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2707,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "3329:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2708,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3329:19:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 2709,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3351:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "3329:23:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3309:43:18"
},
{
"assignments": [
2713
],
"declarations": [
{
"constant": false,
"id": 2713,
"mutability": "mutable",
"name": "lastEntry",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2753,
"src": "3592:26:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry"
},
"typeName": {
"contractScope": null,
"id": 2712,
"name": "MapEntry",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2608,
"src": "3592:8:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2718,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2714,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2681,
"src": "3621:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2715,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "3621:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2717,
"indexExpression": {
"argumentTypes": null,
"id": 2716,
"name": "lastIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2705,
"src": "3634:9:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3621:23:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3592:52:18"
},
{
"expression": {
"argumentTypes": null,
"id": 2725,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2719,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2681,
"src": "3736:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2722,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "3736:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2723,
"indexExpression": {
"argumentTypes": null,
"id": 2721,
"name": "toDeleteIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2699,
"src": "3749:13:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3736:27:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 2724,
"name": "lastEntry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2713,
"src": "3766:9:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry storage pointer"
}
},
"src": "3736:39:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref"
}
},
"id": 2726,
"nodeType": "ExpressionStatement",
"src": "3736:39:18"
},
{
"expression": {
"argumentTypes": null,
"id": 2736,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2727,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2681,
"src": "3841:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2731,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_indexes",
"nodeType": "MemberAccess",
"referencedDeclaration": 2615,
"src": "3841:12:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 2732,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2729,
"name": "lastEntry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2713,
"src": "3854:9:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry storage pointer"
}
},
"id": 2730,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_key",
"nodeType": "MemberAccess",
"referencedDeclaration": 2605,
"src": "3854:14:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3841:28:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2735,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 2733,
"name": "toDeleteIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2699,
"src": "3872:13:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 2734,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3888:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "3872:17:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3841:48:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2737,
"nodeType": "ExpressionStatement",
"src": "3841:48:18"
},
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2738,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2681,
"src": "3995:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2741,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "3995:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2742,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "pop",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3995:16:18",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 2743,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3995:18:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2744,
"nodeType": "ExpressionStatement",
"src": "3995:18:18"
},
{
"expression": {
"argumentTypes": null,
"id": 2749,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "4081:24:18",
"subExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2745,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2681,
"src": "4088:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2746,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_indexes",
"nodeType": "MemberAccess",
"referencedDeclaration": 2615,
"src": "4088:12:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 2748,
"indexExpression": {
"argumentTypes": null,
"id": 2747,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2683,
"src": "4101:3:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4088:17:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2750,
"nodeType": "ExpressionStatement",
"src": "4081:24:18"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 2751,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4127:4:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 2687,
"id": 2752,
"nodeType": "Return",
"src": "4120:11:18"
}
]
}
}
]
},
"documentation": {
"id": 2679,
"nodeType": "StructuredDocumentation",
"src": "2512:157:18",
"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": 2759,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_remove",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2684,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2681,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2759,
"src": "2691:15:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
},
"typeName": {
"contractScope": null,
"id": 2680,
"name": "Map",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2616,
"src": "2691:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2683,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2759,
"src": "2708:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2682,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2708:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2690:30:18"
},
"returnParameters": {
"id": 2687,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2686,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2759,
"src": "2738:4:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2685,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2738:4:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2737:6:18"
},
"scope": 3055,
"src": "2674:1517:18",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "private"
},
{
"body": {
"id": 2776,
"nodeType": "Block",
"src": "4347:46:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2774,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2769,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2762,
"src": "4364:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2770,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_indexes",
"nodeType": "MemberAccess",
"referencedDeclaration": 2615,
"src": "4364:12:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 2772,
"indexExpression": {
"argumentTypes": null,
"id": 2771,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2764,
"src": "4377:3:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4364:17:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 2773,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4385:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "4364:22:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 2768,
"id": 2775,
"nodeType": "Return",
"src": "4357:29:18"
}
]
},
"documentation": {
"id": 2760,
"nodeType": "StructuredDocumentation",
"src": "4197:68:18",
"text": "@dev Returns true if the key is in the map. O(1)."
},
"id": 2777,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_contains",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2765,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2762,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2777,
"src": "4289:15:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
},
"typeName": {
"contractScope": null,
"id": 2761,
"name": "Map",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2616,
"src": "4289:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2764,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2777,
"src": "4306:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2763,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "4306:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4288:30:18"
},
"returnParameters": {
"id": 2768,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2767,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2777,
"src": "4341:4:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2766,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "4341:4:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4340:6:18"
},
"scope": 3055,
"src": "4270:123:18",
"stateMutability": "view",
"virtual": false,
"visibility": "private"
},
{
"body": {
"id": 2789,
"nodeType": "Block",
"src": "4548:43:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2785,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2780,
"src": "4565:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2786,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "4565:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2787,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4565:19:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 2784,
"id": 2788,
"nodeType": "Return",
"src": "4558:26:18"
}
]
},
"documentation": {
"id": 2778,
"nodeType": "StructuredDocumentation",
"src": "4399:79:18",
"text": "@dev Returns the number of key-value pairs in the map. O(1)."
},
"id": 2790,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_length",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2781,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2780,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2790,
"src": "4500:15:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
},
"typeName": {
"contractScope": null,
"id": 2779,
"name": "Map",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2616,
"src": "4500:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4499:17:18"
},
"returnParameters": {
"id": 2784,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2783,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2790,
"src": "4539:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2782,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4539:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4538:9:18"
},
"scope": 3055,
"src": "4483:108:18",
"stateMutability": "view",
"virtual": false,
"visibility": "private"
},
{
"body": {
"id": 2824,
"nodeType": "Block",
"src": "5019:189:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2807,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2803,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2793,
"src": "5037:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2804,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "5037:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2805,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5037:19:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"id": 2806,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2795,
"src": "5059:5:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5037:27:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473",
"id": 2808,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5066:36:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155",
"typeString": "literal_string \"EnumerableMap: index out of bounds\""
},
"value": "EnumerableMap: index out of bounds"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155",
"typeString": "literal_string \"EnumerableMap: index out of bounds\""
}
],
"id": 2802,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "5029:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 2809,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5029:74:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2810,
"nodeType": "ExpressionStatement",
"src": "5029:74:18"
},
{
"assignments": [
2812
],
"declarations": [
{
"constant": false,
"id": 2812,
"mutability": "mutable",
"name": "entry",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2824,
"src": "5114:22:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry"
},
"typeName": {
"contractScope": null,
"id": 2811,
"name": "MapEntry",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2608,
"src": "5114:8:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2817,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2813,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2793,
"src": "5139:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2814,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "5139:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2816,
"indexExpression": {
"argumentTypes": null,
"id": 2815,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2795,
"src": "5152:5:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5139:19:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5114:44:18"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2818,
"name": "entry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2812,
"src": "5176:5:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry storage pointer"
}
},
"id": 2819,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_key",
"nodeType": "MemberAccess",
"referencedDeclaration": 2605,
"src": "5176:10:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2820,
"name": "entry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2812,
"src": "5188:5:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry storage pointer"
}
},
"id": 2821,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_value",
"nodeType": "MemberAccess",
"referencedDeclaration": 2607,
"src": "5188:12:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"id": 2822,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "5175:26:18",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$",
"typeString": "tuple(bytes32,bytes32)"
}
},
"functionReturnParameters": 2801,
"id": 2823,
"nodeType": "Return",
"src": "5168:33:18"
}
]
},
"documentation": {
"id": 2791,
"nodeType": "StructuredDocumentation",
"src": "4596:333:18",
"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\narray, and it may change when more entries are added or removed.\n * Requirements:\n * - `index` must be strictly less than {length}."
},
"id": 2825,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_at",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2796,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2793,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2825,
"src": "4947:15:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
},
"typeName": {
"contractScope": null,
"id": 2792,
"name": "Map",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2616,
"src": "4947:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2795,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2825,
"src": "4964:13:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2794,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4964:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4946:32:18"
},
"returnParameters": {
"id": 2801,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2798,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2825,
"src": "5001:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2797,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5001:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2800,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2825,
"src": "5010:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2799,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5010:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5000:18:18"
},
"scope": 3055,
"src": "4934:274:18",
"stateMutability": "view",
"virtual": false,
"visibility": "private"
},
{
"body": {
"id": 2841,
"nodeType": "Block",
"src": "5435:72:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2836,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2828,
"src": "5457:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
{
"argumentTypes": null,
"id": 2837,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2830,
"src": "5462:3:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"hexValue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579",
"id": 2838,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5467:32:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072",
"typeString": "literal_string \"EnumerableMap: nonexistent key\""
},
"value": "EnumerableMap: nonexistent key"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072",
"typeString": "literal_string \"EnumerableMap: nonexistent key\""
}
],
"id": 2835,
"name": "_get",
"nodeType": "Identifier",
"overloadedDeclarations": [
2842,
2877
],
"referencedDeclaration": 2877,
"src": "5452:4:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_Map_$2616_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": 2839,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5452:48:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 2834,
"id": 2840,
"nodeType": "Return",
"src": "5445:55:18"
}
]
},
"documentation": {
"id": 2826,
"nodeType": "StructuredDocumentation",
"src": "5214:141:18",
"text": "@dev Returns the value associated with `key`. O(1).\n * Requirements:\n * - `key` must be in the map."
},
"id": 2842,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_get",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2831,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2828,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2842,
"src": "5374:15:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
},
"typeName": {
"contractScope": null,
"id": 2827,
"name": "Map",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2616,
"src": "5374:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2830,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2842,
"src": "5391:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2829,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5391:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5373:30:18"
},
"returnParameters": {
"id": 2834,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2833,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2842,
"src": "5426:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2832,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5426:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5425:9:18"
},
"scope": 3055,
"src": "5360:147:18",
"stateMutability": "view",
"virtual": false,
"visibility": "private"
},
{
"body": {
"id": 2876,
"nodeType": "Block",
"src": "5718:212:18",
"statements": [
{
"assignments": [
2855
],
"declarations": [
{
"constant": false,
"id": 2855,
"mutability": "mutable",
"name": "keyIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2876,
"src": "5728:16:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2854,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5728:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2860,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2856,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2845,
"src": "5747:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2857,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_indexes",
"nodeType": "MemberAccess",
"referencedDeclaration": 2615,
"src": "5747:12:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 2859,
"indexExpression": {
"argumentTypes": null,
"id": 2858,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2847,
"src": "5760:3:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5747:17:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5728:36:18"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2864,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 2862,
"name": "keyIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2855,
"src": "5782:8:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 2863,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5794:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "5782:13:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"id": 2865,
"name": "errorMessage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2849,
"src": "5797:12:18",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 2861,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "5774:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 2866,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5774:36:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2867,
"nodeType": "ExpressionStatement",
"src": "5774:36:18"
},
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2868,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2845,
"src": "5863:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2869,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "5863:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2873,
"indexExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2872,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 2870,
"name": "keyIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2855,
"src": "5876:8:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 2871,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5887:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "5876:12:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5863:26:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref"
}
},
"id": 2874,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_value",
"nodeType": "MemberAccess",
"referencedDeclaration": 2607,
"src": "5863:33:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 2853,
"id": 2875,
"nodeType": "Return",
"src": "5856:40:18"
}
]
},
"documentation": {
"id": 2843,
"nodeType": "StructuredDocumentation",
"src": "5513:97:18",
"text": "@dev Same as {_get}, with a custom error message when `key` is not in the map."
},
"id": 2877,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_get",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2850,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2845,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2877,
"src": "5629:15:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
},
"typeName": {
"contractScope": null,
"id": 2844,
"name": "Map",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2616,
"src": "5629:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2847,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2877,
"src": "5646:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2846,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5646:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2849,
"mutability": "mutable",
"name": "errorMessage",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2877,
"src": "5659:26:18",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 2848,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "5659:6:18",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5628:58:18"
},
"returnParameters": {
"id": 2853,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2852,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2877,
"src": "5709:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2851,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5709:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5708:9:18"
},
"scope": 3055,
"src": "5615:315:18",
"stateMutability": "view",
"virtual": false,
"visibility": "private"
},
{
"canonicalName": "EnumerableMap.UintToAddressMap",
"id": 2880,
"members": [
{
"constant": false,
"id": 2879,
"mutability": "mutable",
"name": "_inner",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2880,
"src": "5995:10:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
},
"typeName": {
"contractScope": null,
"id": 2878,
"name": "Map",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2616,
"src": "5995:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "UintToAddressMap",
"nodeType": "StructDefinition",
"scope": 3055,
"src": "5961:51:18",
"visibility": "public"
},
{
"body": {
"id": 2908,
"nodeType": "Block",
"src": "6334:79:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2893,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2883,
"src": "6356:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap storage pointer"
}
},
"id": 2894,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_inner",
"nodeType": "MemberAccess",
"referencedDeclaration": 2879,
"src": "6356:10:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2897,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2885,
"src": "6376:3:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 2896,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6368:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 2895,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "6368:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 2898,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6368:12:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2903,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2887,
"src": "6398:5:18",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 2902,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6390:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 2901,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6390:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 2904,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6390:14:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 2900,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6382:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 2899,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "6382:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 2905,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6382:23:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 2892,
"name": "_set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2678,
"src": "6351:4:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$2616_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)"
}
},
"id": 2906,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6351:55:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 2891,
"id": 2907,
"nodeType": "Return",
"src": "6344:62:18"
}
]
},
"documentation": {
"id": 2881,
"nodeType": "StructuredDocumentation",
"src": "6018:216:18",
"text": "@dev Adds a key-value pair to a map, or updates the value for an existing\nkey. O(1).\n * Returns true if the key was added to the map, that is if it was not\nalready present."
},
"id": 2909,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "set",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2888,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2883,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2909,
"src": "6252:28:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
},
"typeName": {
"contractScope": null,
"id": 2882,
"name": "UintToAddressMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2880,
"src": "6252:16:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2885,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2909,
"src": "6282:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2884,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6282:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2887,
"mutability": "mutable",
"name": "value",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2909,
"src": "6295:13:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2886,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6295:7:18",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6251:58:18"
},
"returnParameters": {
"id": 2891,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2890,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2909,
"src": "6328:4:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2889,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6328:4:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6327:6:18"
},
"scope": 3055,
"src": "6239:174:18",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 2928,
"nodeType": "Block",
"src": "6655:57:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2920,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2912,
"src": "6680:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap storage pointer"
}
},
"id": 2921,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_inner",
"nodeType": "MemberAccess",
"referencedDeclaration": 2879,
"src": "6680:10:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2924,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2914,
"src": "6700:3:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 2923,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6692:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 2922,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "6692:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 2925,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6692:12:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 2919,
"name": "_remove",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2759,
"src": "6672:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$2616_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)"
}
},
"id": 2926,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6672:33:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 2918,
"id": 2927,
"nodeType": "Return",
"src": "6665:40:18"
}
]
},
"documentation": {
"id": 2910,
"nodeType": "StructuredDocumentation",
"src": "6419:148:18",
"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": 2929,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "remove",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2915,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2912,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2929,
"src": "6588:28:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
},
"typeName": {
"contractScope": null,
"id": 2911,
"name": "UintToAddressMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2880,
"src": "6588:16:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2914,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2929,
"src": "6618:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2913,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6618:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6587:43:18"
},
"returnParameters": {
"id": 2918,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2917,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2929,
"src": "6649:4:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2916,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6649:4:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6648:6:18"
},
"scope": 3055,
"src": "6572:140:18",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 2948,
"nodeType": "Block",
"src": "6881:59:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2940,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2932,
"src": "6908:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap storage pointer"
}
},
"id": 2941,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_inner",
"nodeType": "MemberAccess",
"referencedDeclaration": 2879,
"src": "6908:10:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2944,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2934,
"src": "6928:3:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 2943,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6920:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 2942,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "6920:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 2945,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6920:12:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 2939,
"name": "_contains",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2777,
"src": "6898:9:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_Map_$2616_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)"
}
},
"id": 2946,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6898:35:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 2938,
"id": 2947,
"nodeType": "Return",
"src": "6891:42:18"
}
]
},
"documentation": {
"id": 2930,
"nodeType": "StructuredDocumentation",
"src": "6718:68:18",
"text": "@dev Returns true if the key is in the map. O(1)."
},
"id": 2949,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "contains",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2935,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2932,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2949,
"src": "6809:28:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
},
"typeName": {
"contractScope": null,
"id": 2931,
"name": "UintToAddressMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2880,
"src": "6809:16:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2934,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2949,
"src": "6839:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2933,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6839:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6808:43:18"
},
"returnParameters": {
"id": 2938,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2937,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2949,
"src": "6875:4:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2936,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6875:4:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6874:6:18"
},
"scope": 3055,
"src": "6791:149:18",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 2962,
"nodeType": "Block",
"src": "7101:43:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2958,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2952,
"src": "7126:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap storage pointer"
}
},
"id": 2959,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_inner",
"nodeType": "MemberAccess",
"referencedDeclaration": 2879,
"src": "7126:10:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
}
],
"id": 2957,
"name": "_length",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2790,
"src": "7118:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_Map_$2616_storage_ptr_$returns$_t_uint256_$",
"typeString": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)"
}
},
"id": 2960,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7118:19:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 2956,
"id": 2961,
"nodeType": "Return",
"src": "7111:26:18"
}
]
},
"documentation": {
"id": 2950,
"nodeType": "StructuredDocumentation",
"src": "6946:72:18",
"text": "@dev Returns the number of elements in the map. O(1)."
},
"id": 2963,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "length",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2953,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2952,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2963,
"src": "7039:28:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
},
"typeName": {
"contractScope": null,
"id": 2951,
"name": "UintToAddressMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2880,
"src": "7039:16:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7038:30:18"
},
"returnParameters": {
"id": 2956,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2955,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2963,
"src": "7092:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2954,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7092:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7091:9:18"
},
"scope": 3055,
"src": "7023:121:18",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 2998,
"nodeType": "Block",
"src": "7570:126:18",
"statements": [
{
"assignments": [
2976,
2978
],
"declarations": [
{
"constant": false,
"id": 2976,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2998,
"src": "7581:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2975,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "7581:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2978,
"mutability": "mutable",
"name": "value",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2998,
"src": "7594:13:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2977,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "7594:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2984,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2980,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2966,
"src": "7615:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap storage pointer"
}
},
"id": 2981,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_inner",
"nodeType": "MemberAccess",
"referencedDeclaration": 2879,
"src": "7615:10:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
}
},
{
"argumentTypes": null,
"id": 2982,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2968,
"src": "7627:5:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 2979,
"name": "_at",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2825,
"src": "7611:3:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_Map_$2616_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$",
"typeString": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)"
}
},
"id": 2983,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7611:22:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$",
"typeString": "tuple(bytes32,bytes32)"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "7580:53:18"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2987,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2976,
"src": "7659:3:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 2986,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "7651:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 2985,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7651:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 2988,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7651:12:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2993,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2978,
"src": "7681:5:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 2992,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "7673:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 2991,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7673:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 2994,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7673:14:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 2990,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "7665:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 2989,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7665:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 2995,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7665:23:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"id": 2996,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "7650:39:18",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_uint256_$_t_address_payable_$",
"typeString": "tuple(uint256,address payable)"
}
},
"functionReturnParameters": 2974,
"id": 2997,
"nodeType": "Return",
"src": "7643:46:18"
}
]
},
"documentation": {
"id": 2964,
"nodeType": "StructuredDocumentation",
"src": "7149:318:18",
"text": "@dev Returns the element stored at position `index` in the set. O(1).\nNote that there are no guarantees on the ordering of values inside the\narray, and it may change when more values are added or removed.\n * Requirements:\n * - `index` must be strictly less than {length}."
},
"id": 2999,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "at",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2969,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2966,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2999,
"src": "7484:28:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
},
"typeName": {
"contractScope": null,
"id": 2965,
"name": "UintToAddressMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2880,
"src": "7484:16:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2968,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2999,
"src": "7514:13:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2967,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7514:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7483:45:18"
},
"returnParameters": {
"id": 2974,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2971,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2999,
"src": "7552:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2970,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7552:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2973,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2999,
"src": "7561:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2972,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7561:7:18",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7551:18:18"
},
"scope": 3055,
"src": "7472:224:18",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 3024,
"nodeType": "Block",
"src": "7936:72:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3014,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3002,
"src": "7974:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap storage pointer"
}
},
"id": 3015,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_inner",
"nodeType": "MemberAccess",
"referencedDeclaration": 2879,
"src": "7974:10:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3018,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3004,
"src": "7994:3:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3017,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "7986:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 3016,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "7986:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 3019,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7986:12:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 3013,
"name": "_get",
"nodeType": "Identifier",
"overloadedDeclarations": [
2842,
2877
],
"referencedDeclaration": 2842,
"src": "7969:4:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_Map_$2616_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
"typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)"
}
},
"id": 3020,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7969:30:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 3012,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "7961:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 3011,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7961:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 3021,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7961:39:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3010,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "7953:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 3009,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7953:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 3022,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7953:48:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"functionReturnParameters": 3008,
"id": 3023,
"nodeType": "Return",
"src": "7946:55:18"
}
]
},
"documentation": {
"id": 3000,
"nodeType": "StructuredDocumentation",
"src": "7702:141:18",
"text": "@dev Returns the value associated with `key`. O(1).\n * Requirements:\n * - `key` must be in the map."
},
"id": 3025,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "get",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 3005,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3002,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3025,
"src": "7861:28:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
},
"typeName": {
"contractScope": null,
"id": 3001,
"name": "UintToAddressMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2880,
"src": "7861:16:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3004,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3025,
"src": "7891:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3003,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7891:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7860:43:18"
},
"returnParameters": {
"id": 3008,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3007,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3025,
"src": "7927:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3006,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7927:7:18",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7926:9:18"
},
"scope": 3055,
"src": "7848:160:18",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 3053,
"nodeType": "Block",
"src": "8231:86:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3042,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3028,
"src": "8269:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap storage pointer"
}
},
"id": 3043,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_inner",
"nodeType": "MemberAccess",
"referencedDeclaration": 2879,
"src": "8269:10:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3046,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3030,
"src": "8289:3:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3045,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "8281:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 3044,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "8281:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 3047,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8281:12:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"id": 3048,
"name": "errorMessage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3032,
"src": "8295:12:18",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 3041,
"name": "_get",
"nodeType": "Identifier",
"overloadedDeclarations": [
2842,
2877
],
"referencedDeclaration": 2877,
"src": "8264:4:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_Map_$2616_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": 3049,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8264:44:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 3040,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "8256:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 3039,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8256:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 3050,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8256:53:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3038,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "8248:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 3037,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8248:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 3051,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8248:62:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"functionReturnParameters": 3036,
"id": 3052,
"nodeType": "Return",
"src": "8241:69:18"
}
]
},
"documentation": {
"id": 3026,
"nodeType": "StructuredDocumentation",
"src": "8014:96:18",
"text": "@dev Same as {get}, with a custom error message when `key` is not in the map."
},
"id": 3054,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "get",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 3033,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3028,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3054,
"src": "8128:28:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
},
"typeName": {
"contractScope": null,
"id": 3027,
"name": "UintToAddressMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2880,
"src": "8128:16:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3030,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3054,
"src": "8158:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3029,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8158:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3032,
"mutability": "mutable",
"name": "errorMessage",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3054,
"src": "8171:26:18",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 3031,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "8171:6:18",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8127:71:18"
},
"returnParameters": {
"id": 3036,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3035,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3054,
"src": "8222:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3034,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8222:7:18",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8221:9:18"
},
"scope": 3055,
"src": "8115:202:18",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
}
],
"scope": 3056,
"src": "764:7555:18"
}
],
"src": "33:8287:18"
},
"legacyAST": {
"absolutePath": "@openzeppelin/contracts/utils/EnumerableMap.sol",
"exportedSymbols": {
"EnumerableMap": [
3055
]
},
"id": 3056,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2602,
"literals": [
"solidity",
"^",
"0.6",
".0"
],
"nodeType": "PragmaDirective",
"src": "33:23:18"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": {
"id": 2603,
"nodeType": "StructuredDocumentation",
"src": "58:705:18",
"text": "@dev Library for managing an enumerable variant of Solidity's\nhttps://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\ntype.\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 * ```\ncontract 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\nsupported."
},
"fullyImplemented": true,
"id": 3055,
"linearizedBaseContracts": [
3055
],
"name": "EnumerableMap",
"nodeType": "ContractDefinition",
"nodes": [
{
"canonicalName": "EnumerableMap.MapEntry",
"id": 2608,
"members": [
{
"constant": false,
"id": 2605,
"mutability": "mutable",
"name": "_key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2608,
"src": "1276:12:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2604,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1276:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2607,
"mutability": "mutable",
"name": "_value",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2608,
"src": "1298:14:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2606,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1298:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "MapEntry",
"nodeType": "StructDefinition",
"scope": 3055,
"src": "1250:69:18",
"visibility": "public"
},
{
"canonicalName": "EnumerableMap.Map",
"id": 2616,
"members": [
{
"constant": false,
"id": 2611,
"mutability": "mutable",
"name": "_entries",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2616,
"src": "1388:19:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 2609,
"name": "MapEntry",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2608,
"src": "1388:8:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry"
}
},
"id": 2610,
"length": null,
"nodeType": "ArrayTypeName",
"src": "1388:10:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2615,
"mutability": "mutable",
"name": "_indexes",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2616,
"src": "1557:37:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"typeName": {
"id": 2614,
"keyType": {
"id": 2612,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1566:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "1557:28:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"valueType": {
"id": 2613,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1577:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
}
],
"name": "Map",
"nodeType": "StructDefinition",
"scope": 3055,
"src": "1325:276:18",
"visibility": "public"
},
{
"body": {
"id": 2677,
"nodeType": "Block",
"src": "1910:596:18",
"statements": [
{
"assignments": [
2629
],
"declarations": [
{
"constant": false,
"id": 2629,
"mutability": "mutable",
"name": "keyIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2677,
"src": "2018:16:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2628,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2018:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2634,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2630,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2619,
"src": "2037:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2631,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_indexes",
"nodeType": "MemberAccess",
"referencedDeclaration": 2615,
"src": "2037:12:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 2633,
"indexExpression": {
"argumentTypes": null,
"id": 2632,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2621,
"src": "2050:3:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2037:17:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2018:36:18"
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2637,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 2635,
"name": "keyIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2629,
"src": "2069:8:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 2636,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2081:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "2069:13:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 2675,
"nodeType": "Block",
"src": "2408:92:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 2671,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2662,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2619,
"src": "2422:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2667,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "2422:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2668,
"indexExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2666,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 2664,
"name": "keyIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2629,
"src": "2435:8:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 2665,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2446:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "2435:12:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2422:26:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref"
}
},
"id": 2669,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "_value",
"nodeType": "MemberAccess",
"referencedDeclaration": 2607,
"src": "2422:33:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 2670,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2623,
"src": "2458:5:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "2422:41:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 2672,
"nodeType": "ExpressionStatement",
"src": "2422:41:18"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 2673,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2484:5:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 2627,
"id": 2674,
"nodeType": "Return",
"src": "2477:12:18"
}
]
},
"id": 2676,
"nodeType": "IfStatement",
"src": "2065:435:18",
"trueBody": {
"id": 2661,
"nodeType": "Block",
"src": "2084:318:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2644,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2621,
"src": "2170:3:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"id": 2645,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2623,
"src": "2183:5:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 2643,
"name": "MapEntry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2608,
"src": "2153:8:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_MapEntry_$2608_storage_ptr_$",
"typeString": "type(struct EnumerableMap.MapEntry storage pointer)"
}
},
"id": 2646,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [
"_key",
"_value"
],
"nodeType": "FunctionCall",
"src": "2153:38:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_memory_ptr",
"typeString": "struct EnumerableMap.MapEntry memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_MapEntry_$2608_memory_ptr",
"typeString": "struct EnumerableMap.MapEntry memory"
}
],
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2638,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2619,
"src": "2135:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2641,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "2135:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2642,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2135:17:18",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_MapEntry_$2608_storage_$returns$__$",
"typeString": "function (struct EnumerableMap.MapEntry storage ref)"
}
},
"id": 2647,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2135:57:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2648,
"nodeType": "ExpressionStatement",
"src": "2135:57:18"
},
{
"expression": {
"argumentTypes": null,
"id": 2657,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2649,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2619,
"src": "2327:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2652,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_indexes",
"nodeType": "MemberAccess",
"referencedDeclaration": 2615,
"src": "2327:12:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 2653,
"indexExpression": {
"argumentTypes": null,
"id": 2651,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2621,
"src": "2340:3:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2327:17:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2654,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2619,
"src": "2347:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2655,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "2347:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2656,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2347:19:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2327:39:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2658,
"nodeType": "ExpressionStatement",
"src": "2327:39:18"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 2659,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2387:4:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 2627,
"id": 2660,
"nodeType": "Return",
"src": "2380:11:18"
}
]
}
}
]
},
"documentation": {
"id": 2617,
"nodeType": "StructuredDocumentation",
"src": "1607:216:18",
"text": "@dev Adds a key-value pair to a map, or updates the value for an existing\nkey. O(1).\n * Returns true if the key was added to the map, that is if it was not\nalready present."
},
"id": 2678,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_set",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2624,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2619,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2678,
"src": "1842:15:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
},
"typeName": {
"contractScope": null,
"id": 2618,
"name": "Map",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2616,
"src": "1842:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2621,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2678,
"src": "1859:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2620,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1859:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2623,
"mutability": "mutable",
"name": "value",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2678,
"src": "1872:13:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2622,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1872:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1841:45:18"
},
"returnParameters": {
"id": 2627,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2626,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2678,
"src": "1904:4:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2625,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1904:4:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1903:6:18"
},
"scope": 3055,
"src": "1828:678:18",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "private"
},
{
"body": {
"id": 2758,
"nodeType": "Block",
"src": "2744:1447:18",
"statements": [
{
"assignments": [
2689
],
"declarations": [
{
"constant": false,
"id": 2689,
"mutability": "mutable",
"name": "keyIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2758,
"src": "2852:16:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2688,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2852:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2694,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2690,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2681,
"src": "2871:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2691,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_indexes",
"nodeType": "MemberAccess",
"referencedDeclaration": 2615,
"src": "2871:12:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 2693,
"indexExpression": {
"argumentTypes": null,
"id": 2692,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2683,
"src": "2884:3:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2871:17:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2852:36:18"
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2697,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 2695,
"name": "keyIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2689,
"src": "2903:8:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 2696,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2915:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "2903:13:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 2756,
"nodeType": "Block",
"src": "4148:37:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 2754,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4169:5:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 2687,
"id": 2755,
"nodeType": "Return",
"src": "4162:12:18"
}
]
},
"id": 2757,
"nodeType": "IfStatement",
"src": "2899:1286:18",
"trueBody": {
"id": 2753,
"nodeType": "Block",
"src": "2918:1224:18",
"statements": [
{
"assignments": [
2699
],
"declarations": [
{
"constant": false,
"id": 2699,
"mutability": "mutable",
"name": "toDeleteIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2753,
"src": "3259:21:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2698,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3259:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2703,
"initialValue": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2702,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 2700,
"name": "keyIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2689,
"src": "3283:8:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 2701,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3294:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "3283:12:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3259:36:18"
},
{
"assignments": [
2705
],
"declarations": [
{
"constant": false,
"id": 2705,
"mutability": "mutable",
"name": "lastIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2753,
"src": "3309:17:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2704,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3309:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2711,
"initialValue": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2710,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2706,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2681,
"src": "3329:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2707,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "3329:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2708,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3329:19:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 2709,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3351:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "3329:23:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3309:43:18"
},
{
"assignments": [
2713
],
"declarations": [
{
"constant": false,
"id": 2713,
"mutability": "mutable",
"name": "lastEntry",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2753,
"src": "3592:26:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry"
},
"typeName": {
"contractScope": null,
"id": 2712,
"name": "MapEntry",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2608,
"src": "3592:8:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2718,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2714,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2681,
"src": "3621:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2715,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "3621:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2717,
"indexExpression": {
"argumentTypes": null,
"id": 2716,
"name": "lastIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2705,
"src": "3634:9:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3621:23:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3592:52:18"
},
{
"expression": {
"argumentTypes": null,
"id": 2725,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2719,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2681,
"src": "3736:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2722,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "3736:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2723,
"indexExpression": {
"argumentTypes": null,
"id": 2721,
"name": "toDeleteIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2699,
"src": "3749:13:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3736:27:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 2724,
"name": "lastEntry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2713,
"src": "3766:9:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry storage pointer"
}
},
"src": "3736:39:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref"
}
},
"id": 2726,
"nodeType": "ExpressionStatement",
"src": "3736:39:18"
},
{
"expression": {
"argumentTypes": null,
"id": 2736,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2727,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2681,
"src": "3841:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2731,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_indexes",
"nodeType": "MemberAccess",
"referencedDeclaration": 2615,
"src": "3841:12:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 2732,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2729,
"name": "lastEntry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2713,
"src": "3854:9:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry storage pointer"
}
},
"id": 2730,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_key",
"nodeType": "MemberAccess",
"referencedDeclaration": 2605,
"src": "3854:14:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3841:28:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2735,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 2733,
"name": "toDeleteIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2699,
"src": "3872:13:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 2734,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3888:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "3872:17:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3841:48:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2737,
"nodeType": "ExpressionStatement",
"src": "3841:48:18"
},
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2738,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2681,
"src": "3995:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2741,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "3995:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2742,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "pop",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3995:16:18",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 2743,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3995:18:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2744,
"nodeType": "ExpressionStatement",
"src": "3995:18:18"
},
{
"expression": {
"argumentTypes": null,
"id": 2749,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "4081:24:18",
"subExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2745,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2681,
"src": "4088:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2746,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_indexes",
"nodeType": "MemberAccess",
"referencedDeclaration": 2615,
"src": "4088:12:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 2748,
"indexExpression": {
"argumentTypes": null,
"id": 2747,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2683,
"src": "4101:3:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4088:17:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2750,
"nodeType": "ExpressionStatement",
"src": "4081:24:18"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 2751,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4127:4:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 2687,
"id": 2752,
"nodeType": "Return",
"src": "4120:11:18"
}
]
}
}
]
},
"documentation": {
"id": 2679,
"nodeType": "StructuredDocumentation",
"src": "2512:157:18",
"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": 2759,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_remove",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2684,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2681,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2759,
"src": "2691:15:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
},
"typeName": {
"contractScope": null,
"id": 2680,
"name": "Map",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2616,
"src": "2691:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2683,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2759,
"src": "2708:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2682,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2708:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2690:30:18"
},
"returnParameters": {
"id": 2687,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2686,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2759,
"src": "2738:4:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2685,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2738:4:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2737:6:18"
},
"scope": 3055,
"src": "2674:1517:18",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "private"
},
{
"body": {
"id": 2776,
"nodeType": "Block",
"src": "4347:46:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2774,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2769,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2762,
"src": "4364:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2770,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_indexes",
"nodeType": "MemberAccess",
"referencedDeclaration": 2615,
"src": "4364:12:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 2772,
"indexExpression": {
"argumentTypes": null,
"id": 2771,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2764,
"src": "4377:3:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4364:17:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 2773,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4385:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "4364:22:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 2768,
"id": 2775,
"nodeType": "Return",
"src": "4357:29:18"
}
]
},
"documentation": {
"id": 2760,
"nodeType": "StructuredDocumentation",
"src": "4197:68:18",
"text": "@dev Returns true if the key is in the map. O(1)."
},
"id": 2777,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_contains",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2765,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2762,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2777,
"src": "4289:15:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
},
"typeName": {
"contractScope": null,
"id": 2761,
"name": "Map",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2616,
"src": "4289:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2764,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2777,
"src": "4306:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2763,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "4306:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4288:30:18"
},
"returnParameters": {
"id": 2768,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2767,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2777,
"src": "4341:4:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2766,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "4341:4:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4340:6:18"
},
"scope": 3055,
"src": "4270:123:18",
"stateMutability": "view",
"virtual": false,
"visibility": "private"
},
{
"body": {
"id": 2789,
"nodeType": "Block",
"src": "4548:43:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2785,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2780,
"src": "4565:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2786,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "4565:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2787,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4565:19:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 2784,
"id": 2788,
"nodeType": "Return",
"src": "4558:26:18"
}
]
},
"documentation": {
"id": 2778,
"nodeType": "StructuredDocumentation",
"src": "4399:79:18",
"text": "@dev Returns the number of key-value pairs in the map. O(1)."
},
"id": 2790,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_length",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2781,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2780,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2790,
"src": "4500:15:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
},
"typeName": {
"contractScope": null,
"id": 2779,
"name": "Map",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2616,
"src": "4500:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4499:17:18"
},
"returnParameters": {
"id": 2784,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2783,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2790,
"src": "4539:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2782,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4539:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4538:9:18"
},
"scope": 3055,
"src": "4483:108:18",
"stateMutability": "view",
"virtual": false,
"visibility": "private"
},
{
"body": {
"id": 2824,
"nodeType": "Block",
"src": "5019:189:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2807,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2803,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2793,
"src": "5037:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2804,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "5037:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2805,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5037:19:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"id": 2806,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2795,
"src": "5059:5:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5037:27:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473",
"id": 2808,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5066:36:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155",
"typeString": "literal_string \"EnumerableMap: index out of bounds\""
},
"value": "EnumerableMap: index out of bounds"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155",
"typeString": "literal_string \"EnumerableMap: index out of bounds\""
}
],
"id": 2802,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "5029:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 2809,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5029:74:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2810,
"nodeType": "ExpressionStatement",
"src": "5029:74:18"
},
{
"assignments": [
2812
],
"declarations": [
{
"constant": false,
"id": 2812,
"mutability": "mutable",
"name": "entry",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2824,
"src": "5114:22:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry"
},
"typeName": {
"contractScope": null,
"id": 2811,
"name": "MapEntry",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2608,
"src": "5114:8:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2817,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2813,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2793,
"src": "5139:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2814,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "5139:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2816,
"indexExpression": {
"argumentTypes": null,
"id": 2815,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2795,
"src": "5152:5:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5139:19:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5114:44:18"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2818,
"name": "entry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2812,
"src": "5176:5:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry storage pointer"
}
},
"id": 2819,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_key",
"nodeType": "MemberAccess",
"referencedDeclaration": 2605,
"src": "5176:10:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2820,
"name": "entry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2812,
"src": "5188:5:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage_ptr",
"typeString": "struct EnumerableMap.MapEntry storage pointer"
}
},
"id": 2821,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_value",
"nodeType": "MemberAccess",
"referencedDeclaration": 2607,
"src": "5188:12:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"id": 2822,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "5175:26:18",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$",
"typeString": "tuple(bytes32,bytes32)"
}
},
"functionReturnParameters": 2801,
"id": 2823,
"nodeType": "Return",
"src": "5168:33:18"
}
]
},
"documentation": {
"id": 2791,
"nodeType": "StructuredDocumentation",
"src": "4596:333:18",
"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\narray, and it may change when more entries are added or removed.\n * Requirements:\n * - `index` must be strictly less than {length}."
},
"id": 2825,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_at",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2796,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2793,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2825,
"src": "4947:15:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
},
"typeName": {
"contractScope": null,
"id": 2792,
"name": "Map",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2616,
"src": "4947:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2795,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2825,
"src": "4964:13:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2794,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4964:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4946:32:18"
},
"returnParameters": {
"id": 2801,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2798,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2825,
"src": "5001:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2797,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5001:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2800,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2825,
"src": "5010:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2799,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5010:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5000:18:18"
},
"scope": 3055,
"src": "4934:274:18",
"stateMutability": "view",
"virtual": false,
"visibility": "private"
},
{
"body": {
"id": 2841,
"nodeType": "Block",
"src": "5435:72:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2836,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2828,
"src": "5457:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
{
"argumentTypes": null,
"id": 2837,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2830,
"src": "5462:3:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"hexValue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579",
"id": 2838,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5467:32:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072",
"typeString": "literal_string \"EnumerableMap: nonexistent key\""
},
"value": "EnumerableMap: nonexistent key"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072",
"typeString": "literal_string \"EnumerableMap: nonexistent key\""
}
],
"id": 2835,
"name": "_get",
"nodeType": "Identifier",
"overloadedDeclarations": [
2842,
2877
],
"referencedDeclaration": 2877,
"src": "5452:4:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_Map_$2616_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": 2839,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5452:48:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 2834,
"id": 2840,
"nodeType": "Return",
"src": "5445:55:18"
}
]
},
"documentation": {
"id": 2826,
"nodeType": "StructuredDocumentation",
"src": "5214:141:18",
"text": "@dev Returns the value associated with `key`. O(1).\n * Requirements:\n * - `key` must be in the map."
},
"id": 2842,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_get",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2831,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2828,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2842,
"src": "5374:15:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
},
"typeName": {
"contractScope": null,
"id": 2827,
"name": "Map",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2616,
"src": "5374:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2830,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2842,
"src": "5391:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2829,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5391:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5373:30:18"
},
"returnParameters": {
"id": 2834,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2833,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2842,
"src": "5426:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2832,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5426:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5425:9:18"
},
"scope": 3055,
"src": "5360:147:18",
"stateMutability": "view",
"virtual": false,
"visibility": "private"
},
{
"body": {
"id": 2876,
"nodeType": "Block",
"src": "5718:212:18",
"statements": [
{
"assignments": [
2855
],
"declarations": [
{
"constant": false,
"id": 2855,
"mutability": "mutable",
"name": "keyIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2876,
"src": "5728:16:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2854,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5728:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2860,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2856,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2845,
"src": "5747:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2857,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_indexes",
"nodeType": "MemberAccess",
"referencedDeclaration": 2615,
"src": "5747:12:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 2859,
"indexExpression": {
"argumentTypes": null,
"id": 2858,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2847,
"src": "5760:3:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5747:17:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5728:36:18"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2864,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 2862,
"name": "keyIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2855,
"src": "5782:8:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 2863,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5794:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "5782:13:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"id": 2865,
"name": "errorMessage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2849,
"src": "5797:12:18",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 2861,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "5774:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 2866,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5774:36:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2867,
"nodeType": "ExpressionStatement",
"src": "5774:36:18"
},
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2868,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2845,
"src": "5863:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map storage pointer"
}
},
"id": 2869,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_entries",
"nodeType": "MemberAccess",
"referencedDeclaration": 2611,
"src": "5863:12:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_MapEntry_$2608_storage_$dyn_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
}
},
"id": 2873,
"indexExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2872,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 2870,
"name": "keyIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2855,
"src": "5876:8:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 2871,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5887:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "5876:12:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5863:26:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_MapEntry_$2608_storage",
"typeString": "struct EnumerableMap.MapEntry storage ref"
}
},
"id": 2874,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_value",
"nodeType": "MemberAccess",
"referencedDeclaration": 2607,
"src": "5863:33:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 2853,
"id": 2875,
"nodeType": "Return",
"src": "5856:40:18"
}
]
},
"documentation": {
"id": 2843,
"nodeType": "StructuredDocumentation",
"src": "5513:97:18",
"text": "@dev Same as {_get}, with a custom error message when `key` is not in the map."
},
"id": 2877,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_get",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2850,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2845,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2877,
"src": "5629:15:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
},
"typeName": {
"contractScope": null,
"id": 2844,
"name": "Map",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2616,
"src": "5629:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2847,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2877,
"src": "5646:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2846,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5646:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2849,
"mutability": "mutable",
"name": "errorMessage",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2877,
"src": "5659:26:18",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 2848,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "5659:6:18",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5628:58:18"
},
"returnParameters": {
"id": 2853,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2852,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2877,
"src": "5709:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2851,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5709:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5708:9:18"
},
"scope": 3055,
"src": "5615:315:18",
"stateMutability": "view",
"virtual": false,
"visibility": "private"
},
{
"canonicalName": "EnumerableMap.UintToAddressMap",
"id": 2880,
"members": [
{
"constant": false,
"id": 2879,
"mutability": "mutable",
"name": "_inner",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2880,
"src": "5995:10:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
},
"typeName": {
"contractScope": null,
"id": 2878,
"name": "Map",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2616,
"src": "5995:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage_ptr",
"typeString": "struct EnumerableMap.Map"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "UintToAddressMap",
"nodeType": "StructDefinition",
"scope": 3055,
"src": "5961:51:18",
"visibility": "public"
},
{
"body": {
"id": 2908,
"nodeType": "Block",
"src": "6334:79:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2893,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2883,
"src": "6356:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap storage pointer"
}
},
"id": 2894,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_inner",
"nodeType": "MemberAccess",
"referencedDeclaration": 2879,
"src": "6356:10:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2897,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2885,
"src": "6376:3:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 2896,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6368:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 2895,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "6368:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 2898,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6368:12:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2903,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2887,
"src": "6398:5:18",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 2902,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6390:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 2901,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6390:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 2904,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6390:14:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 2900,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6382:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 2899,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "6382:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 2905,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6382:23:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 2892,
"name": "_set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2678,
"src": "6351:4:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$2616_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)"
}
},
"id": 2906,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6351:55:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 2891,
"id": 2907,
"nodeType": "Return",
"src": "6344:62:18"
}
]
},
"documentation": {
"id": 2881,
"nodeType": "StructuredDocumentation",
"src": "6018:216:18",
"text": "@dev Adds a key-value pair to a map, or updates the value for an existing\nkey. O(1).\n * Returns true if the key was added to the map, that is if it was not\nalready present."
},
"id": 2909,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "set",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2888,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2883,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2909,
"src": "6252:28:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
},
"typeName": {
"contractScope": null,
"id": 2882,
"name": "UintToAddressMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2880,
"src": "6252:16:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2885,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2909,
"src": "6282:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2884,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6282:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2887,
"mutability": "mutable",
"name": "value",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2909,
"src": "6295:13:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2886,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6295:7:18",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6251:58:18"
},
"returnParameters": {
"id": 2891,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2890,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2909,
"src": "6328:4:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2889,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6328:4:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6327:6:18"
},
"scope": 3055,
"src": "6239:174:18",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 2928,
"nodeType": "Block",
"src": "6655:57:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2920,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2912,
"src": "6680:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap storage pointer"
}
},
"id": 2921,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_inner",
"nodeType": "MemberAccess",
"referencedDeclaration": 2879,
"src": "6680:10:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2924,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2914,
"src": "6700:3:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 2923,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6692:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 2922,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "6692:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 2925,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6692:12:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 2919,
"name": "_remove",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2759,
"src": "6672:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$2616_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)"
}
},
"id": 2926,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6672:33:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 2918,
"id": 2927,
"nodeType": "Return",
"src": "6665:40:18"
}
]
},
"documentation": {
"id": 2910,
"nodeType": "StructuredDocumentation",
"src": "6419:148:18",
"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": 2929,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "remove",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2915,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2912,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2929,
"src": "6588:28:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
},
"typeName": {
"contractScope": null,
"id": 2911,
"name": "UintToAddressMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2880,
"src": "6588:16:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2914,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2929,
"src": "6618:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2913,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6618:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6587:43:18"
},
"returnParameters": {
"id": 2918,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2917,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2929,
"src": "6649:4:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2916,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6649:4:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6648:6:18"
},
"scope": 3055,
"src": "6572:140:18",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 2948,
"nodeType": "Block",
"src": "6881:59:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2940,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2932,
"src": "6908:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap storage pointer"
}
},
"id": 2941,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_inner",
"nodeType": "MemberAccess",
"referencedDeclaration": 2879,
"src": "6908:10:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2944,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2934,
"src": "6928:3:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 2943,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6920:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 2942,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "6920:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 2945,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6920:12:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 2939,
"name": "_contains",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2777,
"src": "6898:9:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_Map_$2616_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)"
}
},
"id": 2946,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6898:35:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 2938,
"id": 2947,
"nodeType": "Return",
"src": "6891:42:18"
}
]
},
"documentation": {
"id": 2930,
"nodeType": "StructuredDocumentation",
"src": "6718:68:18",
"text": "@dev Returns true if the key is in the map. O(1)."
},
"id": 2949,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "contains",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2935,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2932,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2949,
"src": "6809:28:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
},
"typeName": {
"contractScope": null,
"id": 2931,
"name": "UintToAddressMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2880,
"src": "6809:16:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2934,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2949,
"src": "6839:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2933,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6839:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6808:43:18"
},
"returnParameters": {
"id": 2938,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2937,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2949,
"src": "6875:4:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2936,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6875:4:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6874:6:18"
},
"scope": 3055,
"src": "6791:149:18",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 2962,
"nodeType": "Block",
"src": "7101:43:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2958,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2952,
"src": "7126:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap storage pointer"
}
},
"id": 2959,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_inner",
"nodeType": "MemberAccess",
"referencedDeclaration": 2879,
"src": "7126:10:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
}
],
"id": 2957,
"name": "_length",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2790,
"src": "7118:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_Map_$2616_storage_ptr_$returns$_t_uint256_$",
"typeString": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)"
}
},
"id": 2960,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7118:19:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 2956,
"id": 2961,
"nodeType": "Return",
"src": "7111:26:18"
}
]
},
"documentation": {
"id": 2950,
"nodeType": "StructuredDocumentation",
"src": "6946:72:18",
"text": "@dev Returns the number of elements in the map. O(1)."
},
"id": 2963,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "length",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2953,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2952,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2963,
"src": "7039:28:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
},
"typeName": {
"contractScope": null,
"id": 2951,
"name": "UintToAddressMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2880,
"src": "7039:16:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7038:30:18"
},
"returnParameters": {
"id": 2956,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2955,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2963,
"src": "7092:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2954,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7092:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7091:9:18"
},
"scope": 3055,
"src": "7023:121:18",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 2998,
"nodeType": "Block",
"src": "7570:126:18",
"statements": [
{
"assignments": [
2976,
2978
],
"declarations": [
{
"constant": false,
"id": 2976,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2998,
"src": "7581:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2975,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "7581:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2978,
"mutability": "mutable",
"name": "value",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2998,
"src": "7594:13:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 2977,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "7594:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2984,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2980,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2966,
"src": "7615:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap storage pointer"
}
},
"id": 2981,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_inner",
"nodeType": "MemberAccess",
"referencedDeclaration": 2879,
"src": "7615:10:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
}
},
{
"argumentTypes": null,
"id": 2982,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2968,
"src": "7627:5:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 2979,
"name": "_at",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2825,
"src": "7611:3:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_Map_$2616_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$",
"typeString": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)"
}
},
"id": 2983,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7611:22:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$",
"typeString": "tuple(bytes32,bytes32)"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "7580:53:18"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2987,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2976,
"src": "7659:3:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 2986,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "7651:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 2985,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7651:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 2988,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7651:12:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2993,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2978,
"src": "7681:5:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 2992,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "7673:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 2991,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7673:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 2994,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7673:14:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 2990,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "7665:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 2989,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7665:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 2995,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7665:23:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"id": 2996,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "7650:39:18",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_uint256_$_t_address_payable_$",
"typeString": "tuple(uint256,address payable)"
}
},
"functionReturnParameters": 2974,
"id": 2997,
"nodeType": "Return",
"src": "7643:46:18"
}
]
},
"documentation": {
"id": 2964,
"nodeType": "StructuredDocumentation",
"src": "7149:318:18",
"text": "@dev Returns the element stored at position `index` in the set. O(1).\nNote that there are no guarantees on the ordering of values inside the\narray, and it may change when more values are added or removed.\n * Requirements:\n * - `index` must be strictly less than {length}."
},
"id": 2999,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "at",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 2969,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2966,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2999,
"src": "7484:28:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
},
"typeName": {
"contractScope": null,
"id": 2965,
"name": "UintToAddressMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2880,
"src": "7484:16:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2968,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2999,
"src": "7514:13:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2967,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7514:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7483:45:18"
},
"returnParameters": {
"id": 2974,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2971,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2999,
"src": "7552:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2970,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7552:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2973,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 2999,
"src": "7561:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2972,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7561:7:18",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7551:18:18"
},
"scope": 3055,
"src": "7472:224:18",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 3024,
"nodeType": "Block",
"src": "7936:72:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3014,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3002,
"src": "7974:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap storage pointer"
}
},
"id": 3015,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_inner",
"nodeType": "MemberAccess",
"referencedDeclaration": 2879,
"src": "7974:10:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3018,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3004,
"src": "7994:3:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3017,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "7986:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 3016,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "7986:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 3019,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7986:12:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 3013,
"name": "_get",
"nodeType": "Identifier",
"overloadedDeclarations": [
2842,
2877
],
"referencedDeclaration": 2842,
"src": "7969:4:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_Map_$2616_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
"typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)"
}
},
"id": 3020,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7969:30:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 3012,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "7961:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 3011,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7961:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 3021,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7961:39:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3010,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "7953:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 3009,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7953:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 3022,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7953:48:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"functionReturnParameters": 3008,
"id": 3023,
"nodeType": "Return",
"src": "7946:55:18"
}
]
},
"documentation": {
"id": 3000,
"nodeType": "StructuredDocumentation",
"src": "7702:141:18",
"text": "@dev Returns the value associated with `key`. O(1).\n * Requirements:\n * - `key` must be in the map."
},
"id": 3025,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "get",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 3005,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3002,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3025,
"src": "7861:28:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
},
"typeName": {
"contractScope": null,
"id": 3001,
"name": "UintToAddressMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2880,
"src": "7861:16:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3004,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3025,
"src": "7891:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3003,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7891:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7860:43:18"
},
"returnParameters": {
"id": 3008,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3007,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3025,
"src": "7927:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3006,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7927:7:18",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7926:9:18"
},
"scope": 3055,
"src": "7848:160:18",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 3053,
"nodeType": "Block",
"src": "8231:86:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3042,
"name": "map",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3028,
"src": "8269:3:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap storage pointer"
}
},
"id": 3043,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_inner",
"nodeType": "MemberAccess",
"referencedDeclaration": 2879,
"src": "8269:10:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3046,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3030,
"src": "8289:3:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3045,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "8281:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 3044,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "8281:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 3047,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8281:12:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"id": 3048,
"name": "errorMessage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3032,
"src": "8295:12:18",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Map_$2616_storage",
"typeString": "struct EnumerableMap.Map storage ref"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 3041,
"name": "_get",
"nodeType": "Identifier",
"overloadedDeclarations": [
2842,
2877
],
"referencedDeclaration": 2877,
"src": "8264:4:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_Map_$2616_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": 3049,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8264:44:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 3040,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "8256:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 3039,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8256:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 3050,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8256:53:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3038,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "8248:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 3037,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8248:7:18",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 3051,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8248:62:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"functionReturnParameters": 3036,
"id": 3052,
"nodeType": "Return",
"src": "8241:69:18"
}
]
},
"documentation": {
"id": 3026,
"nodeType": "StructuredDocumentation",
"src": "8014:96:18",
"text": "@dev Same as {get}, with a custom error message when `key` is not in the map."
},
"id": 3054,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "get",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 3033,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3028,
"mutability": "mutable",
"name": "map",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3054,
"src": "8128:28:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
},
"typeName": {
"contractScope": null,
"id": 3027,
"name": "UintToAddressMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2880,
"src": "8128:16:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintToAddressMap_$2880_storage_ptr",
"typeString": "struct EnumerableMap.UintToAddressMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3030,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3054,
"src": "8158:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3029,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8158:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3032,
"mutability": "mutable",
"name": "errorMessage",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3054,
"src": "8171:26:18",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 3031,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "8171:6:18",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8127:71:18"
},
"returnParameters": {
"id": 3036,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3035,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3054,
"src": "8222:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3034,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8222:7:18",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8221:9:18"
},
"scope": 3055,
"src": "8115:202:18",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
}
],
"scope": 3056,
"src": "764:7555:18"
}
],
"src": "33:8287:18"
},
"compiler": {
"name": "solc",
"version": "0.6.6+commit.6c089d02.Emscripten.clang"
},
"networks": {},
"schemaVersion": "3.2.5",
"updatedAt": "2020-10-28T15:56:43.373Z",
"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": {}
}
}