@etherisc/gif-contracts
Version:
This repository holds the GIF core contracts and tools to develop, test and deploy GIF instances.
1,126 lines (1,125 loc) • 313 kB
JSON
{
"abi": [],
"allSourcePaths": {
"27": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/structs/EnumerableSet.sol"
},
"ast": {
"absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/structs/EnumerableSet.sol",
"exportedSymbols": {
"EnumerableSet": [
19390
]
},
"id": 19391,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 18793,
"literals": [
"solidity",
"^",
"0.8",
".0"
],
"nodeType": "PragmaDirective",
"src": "115:23:27"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": {
"id": 18794,
"nodeType": "StructuredDocumentation",
"src": "140:1087:27",
"text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported.\n [WARNING]\n ====\n Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable.\n See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\n In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet.\n ===="
},
"fullyImplemented": true,
"id": 19390,
"linearizedBaseContracts": [
19390
],
"name": "EnumerableSet",
"nameLocation": "1236:13:27",
"nodeType": "ContractDefinition",
"nodes": [
{
"canonicalName": "EnumerableSet.Set",
"id": 18802,
"members": [
{
"constant": false,
"id": 18797,
"mutability": "mutable",
"name": "_values",
"nameLocation": "1760:7:27",
"nodeType": "VariableDeclaration",
"scope": 18802,
"src": "1750:17:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
"id": 18795,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1750:7:27",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 18796,
"nodeType": "ArrayTypeName",
"src": "1750:9:27",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 18801,
"mutability": "mutable",
"name": "_indexes",
"nameLocation": "1928:8:27",
"nodeType": "VariableDeclaration",
"scope": 18802,
"src": "1900:36:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"typeName": {
"id": 18800,
"keyType": {
"id": 18798,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1908:7:27",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "1900:27:27",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"valueType": {
"id": 18799,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1919:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"visibility": "internal"
}
],
"name": "Set",
"nameLocation": "1703:3:27",
"nodeType": "StructDefinition",
"scope": 19390,
"src": "1696:247:27",
"visibility": "public"
},
{
"body": {
"id": 18843,
"nodeType": "Block",
"src": "2182:335:27",
"statements": [
{
"condition": {
"id": 18817,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "2196:22:27",
"subExpression": {
"arguments": [
{
"id": 18814,
"name": "set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 18806,
"src": "2207:3:27",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Set_$18802_storage_ptr",
"typeString": "struct EnumerableSet.Set storage pointer"
}
},
{
"id": 18815,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 18808,
"src": "2212:5:27",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Set_$18802_storage_ptr",
"typeString": "struct EnumerableSet.Set storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 18813,
"name": "_contains",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 18947,
"src": "2197:9:27",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_Set_$18802_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"
}
},
"id": 18816,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2197:21:27",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 18841,
"nodeType": "Block",
"src": "2474:37:27",
"statements": [
{
"expression": {
"hexValue": "66616c7365",
"id": 18839,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2495:5:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 18812,
"id": 18840,
"nodeType": "Return",
"src": "2488:12:27"
}
]
},
"id": 18842,
"nodeType": "IfStatement",
"src": "2192:319:27",
"trueBody": {
"id": 18838,
"nodeType": "Block",
"src": "2220:248:27",
"statements": [
{
"expression": {
"arguments": [
{
"id": 18823,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 18808,
"src": "2251:5:27",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"expression": {
"id": 18818,
"name": "set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 18806,
"src": "2234:3:27",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Set_$18802_storage_ptr",
"typeString": "struct EnumerableSet.Set storage pointer"
}
},
"id": 18821,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_values",
"nodeType": "MemberAccess",
"referencedDeclaration": 18797,
"src": "2234:11:27",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"id": 18822,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"src": "2234:16:27",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$",
"typeString": "function (bytes32[] storage pointer,bytes32)"
}
},
"id": 18824,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2234:23:27",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 18825,
"nodeType": "ExpressionStatement",
"src": "2234:23:27"
},
{
"expression": {
"id": 18834,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"expression": {
"id": 18826,
"name": "set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 18806,
"src": "2392:3:27",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Set_$18802_storage_ptr",
"typeString": "struct EnumerableSet.Set storage pointer"
}
},
"id": 18829,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_indexes",
"nodeType": "MemberAccess",
"referencedDeclaration": 18801,
"src": "2392:12:27",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 18830,
"indexExpression": {
"id": 18828,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 18808,
"src": "2405:5:27",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2392:19:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"expression": {
"expression": {
"id": 18831,
"name": "set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 18806,
"src": "2414:3:27",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Set_$18802_storage_ptr",
"typeString": "struct EnumerableSet.Set storage pointer"
}
},
"id": 18832,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_values",
"nodeType": "MemberAccess",
"referencedDeclaration": 18797,
"src": "2414:11:27",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"id": 18833,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"src": "2414:18:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2392:40:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 18835,
"nodeType": "ExpressionStatement",
"src": "2392:40:27"
},
{
"expression": {
"hexValue": "74727565",
"id": 18836,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2453:4:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 18812,
"id": 18837,
"nodeType": "Return",
"src": "2446:11:27"
}
]
}
}
]
},
"documentation": {
"id": 18803,
"nodeType": "StructuredDocumentation",
"src": "1949:159:27",
"text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."
},
"id": 18844,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_add",
"nameLocation": "2122:4:27",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 18809,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 18806,
"mutability": "mutable",
"name": "set",
"nameLocation": "2139:3:27",
"nodeType": "VariableDeclaration",
"scope": 18844,
"src": "2127:15:27",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Set_$18802_storage_ptr",
"typeString": "struct EnumerableSet.Set"
},
"typeName": {
"id": 18805,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 18804,
"name": "Set",
"nodeType": "IdentifierPath",
"referencedDeclaration": 18802,
"src": "2127:3:27"
},
"referencedDeclaration": 18802,
"src": "2127:3:27",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Set_$18802_storage_ptr",
"typeString": "struct EnumerableSet.Set"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 18808,
"mutability": "mutable",
"name": "value",
"nameLocation": "2152:5:27",
"nodeType": "VariableDeclaration",
"scope": 18844,
"src": "2144:13:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 18807,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2144:7:27",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "2126:32:27"
},
"returnParameters": {
"id": 18812,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 18811,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 18844,
"src": "2176:4:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 18810,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2176:4:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "2175:6:27"
},
"scope": 19390,
"src": "2113:404:27",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "private"
},
{
"body": {
"id": 18927,
"nodeType": "Block",
"src": "2757:1316:27",
"statements": [
{
"assignments": [
18856
],
"declarations": [
{
"constant": false,
"id": 18856,
"mutability": "mutable",
"name": "valueIndex",
"nameLocation": "2875:10:27",
"nodeType": "VariableDeclaration",
"scope": 18927,
"src": "2867:18:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 18855,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2867:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 18861,
"initialValue": {
"baseExpression": {
"expression": {
"id": 18857,
"name": "set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 18848,
"src": "2888:3:27",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Set_$18802_storage_ptr",
"typeString": "struct EnumerableSet.Set storage pointer"
}
},
"id": 18858,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_indexes",
"nodeType": "MemberAccess",
"referencedDeclaration": 18801,
"src": "2888:12:27",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 18860,
"indexExpression": {
"id": 18859,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 18850,
"src": "2901:5:27",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2888:19:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2867:40:27"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 18864,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 18862,
"name": "valueIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 18856,
"src": "2922:10:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"hexValue": "30",
"id": 18863,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2936:1:27",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "2922:15:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 18925,
"nodeType": "Block",
"src": "4030:37:27",
"statements": [
{
"expression": {
"hexValue": "66616c7365",
"id": 18923,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4051:5:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 18854,
"id": 18924,
"nodeType": "Return",
"src": "4044:12:27"
}
]
},
"id": 18926,
"nodeType": "IfStatement",
"src": "2918:1149:27",
"trueBody": {
"id": 18922,
"nodeType": "Block",
"src": "2939:1085:27",
"statements": [
{
"assignments": [
18866
],
"declarations": [
{
"constant": false,
"id": 18866,
"mutability": "mutable",
"name": "toDeleteIndex",
"nameLocation": "3299:13:27",
"nodeType": "VariableDeclaration",
"scope": 18922,
"src": "3291:21:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 18865,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3291:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 18870,
"initialValue": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 18869,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 18867,
"name": "valueIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 18856,
"src": "3315:10:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"hexValue": "31",
"id": 18868,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3328:1:27",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "3315:14:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3291:38:27"
},
{
"assignments": [
18872
],
"declarations": [
{
"constant": false,
"id": 18872,
"mutability": "mutable",
"name": "lastIndex",
"nameLocation": "3351:9:27",
"nodeType": "VariableDeclaration",
"scope": 18922,
"src": "3343:17:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 18871,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3343:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 18878,
"initialValue": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 18877,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"expression": {
"id": 18873,
"name": "set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 18848,
"src": "3363:3:27",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Set_$18802_storage_ptr",
"typeString": "struct EnumerableSet.Set storage pointer"
}
},
"id": 18874,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_values",
"nodeType": "MemberAccess",
"referencedDeclaration": 18797,
"src": "3363:11:27",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"id": 18875,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"src": "3363:18:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"hexValue": "31",
"id": 18876,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3384:1:27",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "3363:22:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3343:42:27"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 18881,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 18879,
"name": "lastIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 18872,
"src": "3404:9:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"id": 18880,
"name": "toDeleteIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 18866,
"src": "3417:13:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3404:26:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 18906,
"nodeType": "IfStatement",
"src": "3400:398:27",
"trueBody": {
"id": 18905,
"nodeType": "Block",
"src": "3432:366:27",
"statements": [
{
"assignments": [
18883
],
"declarations": [
{
"constant": false,
"id": 18883,
"mutability": "mutable",
"name": "lastValue",
"nameLocation": "3458:9:27",
"nodeType": "VariableDeclaration",
"scope": 18905,
"src": "3450:17:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 18882,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3450:7:27",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 18888,
"initialValue": {
"baseExpression": {
"expression": {
"id": 18884,
"name": "set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 18848,
"src": "3470:3:27",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Set_$18802_storage_ptr",
"typeString": "struct EnumerableSet.Set storage pointer"
}
},
"id": 18885,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_values",
"nodeType": "MemberAccess",
"referencedDeclaration": 18797,
"src": "3470:11:27",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"id": 18887,
"indexExpression": {
"id": 18886,
"name": "lastIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 18872,
"src": "3482:9:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3470:22:27",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3450:42:27"
},
{
"expression": {
"id": 18895,
"isConstant": false,
"isLValue": false,