@etherisc/depeg-contracts
Version:
Etherisc's smart contracts for a depeg insurance for stable coins.
1,129 lines (1,128 loc) • 312 kB
JSON
{
"abi": [],
"allSourcePaths": {
"16": "/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": [
10109
]
},
"id": 10110,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 9512,
"literals": [
"solidity",
"^",
"0.8",
".0"
],
"nodeType": "PragmaDirective",
"src": "115:23:16"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": {
"id": 9513,
"nodeType": "StructuredDocumentation",
"src": "140:1087:16",
"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": 10109,
"linearizedBaseContracts": [
10109
],
"name": "EnumerableSet",
"nameLocation": "1236:13:16",
"nodeType": "ContractDefinition",
"nodes": [
{
"canonicalName": "EnumerableSet.Set",
"id": 9521,
"members": [
{
"constant": false,
"id": 9516,
"mutability": "mutable",
"name": "_values",
"nameLocation": "1760:7:16",
"nodeType": "VariableDeclaration",
"scope": 9521,
"src": "1750:17:16",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
"id": 9514,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1750:7:16",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 9515,
"nodeType": "ArrayTypeName",
"src": "1750:9:16",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 9520,
"mutability": "mutable",
"name": "_indexes",
"nameLocation": "1928:8:16",
"nodeType": "VariableDeclaration",
"scope": 9521,
"src": "1900:36:16",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"typeName": {
"id": 9519,
"keyType": {
"id": 9517,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1908:7:16",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "1900:27:16",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"valueType": {
"id": 9518,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1919:7:16",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"visibility": "internal"
}
],
"name": "Set",
"nameLocation": "1703:3:16",
"nodeType": "StructDefinition",
"scope": 10109,
"src": "1696:247:16",
"visibility": "public"
},
{
"body": {
"id": 9562,
"nodeType": "Block",
"src": "2182:335:16",
"statements": [
{
"condition": {
"id": 9536,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "2196:22:16",
"subExpression": {
"arguments": [
{
"id": 9533,
"name": "set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9525,
"src": "2207:3:16",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Set_$9521_storage_ptr",
"typeString": "struct EnumerableSet.Set storage pointer"
}
},
{
"id": 9534,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9527,
"src": "2212:5:16",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Set_$9521_storage_ptr",
"typeString": "struct EnumerableSet.Set storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 9532,
"name": "_contains",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9666,
"src": "2197:9:16",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_Set_$9521_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"
}
},
"id": 9535,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2197:21:16",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 9560,
"nodeType": "Block",
"src": "2474:37:16",
"statements": [
{
"expression": {
"hexValue": "66616c7365",
"id": 9558,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2495:5:16",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 9531,
"id": 9559,
"nodeType": "Return",
"src": "2488:12:16"
}
]
},
"id": 9561,
"nodeType": "IfStatement",
"src": "2192:319:16",
"trueBody": {
"id": 9557,
"nodeType": "Block",
"src": "2220:248:16",
"statements": [
{
"expression": {
"arguments": [
{
"id": 9542,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9527,
"src": "2251:5:16",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"expression": {
"id": 9537,
"name": "set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9525,
"src": "2234:3:16",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Set_$9521_storage_ptr",
"typeString": "struct EnumerableSet.Set storage pointer"
}
},
"id": 9540,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_values",
"nodeType": "MemberAccess",
"referencedDeclaration": 9516,
"src": "2234:11:16",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"id": 9541,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"src": "2234:16:16",
"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": 9543,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2234:23:16",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 9544,
"nodeType": "ExpressionStatement",
"src": "2234:23:16"
},
{
"expression": {
"id": 9553,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"expression": {
"id": 9545,
"name": "set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9525,
"src": "2392:3:16",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Set_$9521_storage_ptr",
"typeString": "struct EnumerableSet.Set storage pointer"
}
},
"id": 9548,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_indexes",
"nodeType": "MemberAccess",
"referencedDeclaration": 9520,
"src": "2392:12:16",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 9549,
"indexExpression": {
"id": 9547,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9527,
"src": "2405:5:16",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2392:19:16",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"expression": {
"expression": {
"id": 9550,
"name": "set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9525,
"src": "2414:3:16",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Set_$9521_storage_ptr",
"typeString": "struct EnumerableSet.Set storage pointer"
}
},
"id": 9551,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_values",
"nodeType": "MemberAccess",
"referencedDeclaration": 9516,
"src": "2414:11:16",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"id": 9552,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"src": "2414:18:16",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2392:40:16",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 9554,
"nodeType": "ExpressionStatement",
"src": "2392:40:16"
},
{
"expression": {
"hexValue": "74727565",
"id": 9555,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2453:4:16",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 9531,
"id": 9556,
"nodeType": "Return",
"src": "2446:11:16"
}
]
}
}
]
},
"documentation": {
"id": 9522,
"nodeType": "StructuredDocumentation",
"src": "1949:159:16",
"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": 9563,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_add",
"nameLocation": "2122:4:16",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 9528,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9525,
"mutability": "mutable",
"name": "set",
"nameLocation": "2139:3:16",
"nodeType": "VariableDeclaration",
"scope": 9563,
"src": "2127:15:16",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Set_$9521_storage_ptr",
"typeString": "struct EnumerableSet.Set"
},
"typeName": {
"id": 9524,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9523,
"name": "Set",
"nodeType": "IdentifierPath",
"referencedDeclaration": 9521,
"src": "2127:3:16"
},
"referencedDeclaration": 9521,
"src": "2127:3:16",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Set_$9521_storage_ptr",
"typeString": "struct EnumerableSet.Set"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 9527,
"mutability": "mutable",
"name": "value",
"nameLocation": "2152:5:16",
"nodeType": "VariableDeclaration",
"scope": 9563,
"src": "2144:13:16",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 9526,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2144:7:16",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "2126:32:16"
},
"returnParameters": {
"id": 9531,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9530,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9563,
"src": "2176:4:16",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 9529,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2176:4:16",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "2175:6:16"
},
"scope": 10109,
"src": "2113:404:16",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "private"
},
{
"body": {
"id": 9646,
"nodeType": "Block",
"src": "2757:1316:16",
"statements": [
{
"assignments": [
9575
],
"declarations": [
{
"constant": false,
"id": 9575,
"mutability": "mutable",
"name": "valueIndex",
"nameLocation": "2875:10:16",
"nodeType": "VariableDeclaration",
"scope": 9646,
"src": "2867:18:16",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9574,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2867:7:16",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 9580,
"initialValue": {
"baseExpression": {
"expression": {
"id": 9576,
"name": "set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9567,
"src": "2888:3:16",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Set_$9521_storage_ptr",
"typeString": "struct EnumerableSet.Set storage pointer"
}
},
"id": 9577,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_indexes",
"nodeType": "MemberAccess",
"referencedDeclaration": 9520,
"src": "2888:12:16",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 9579,
"indexExpression": {
"id": 9578,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9569,
"src": "2901:5:16",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2888:19:16",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2867:40:16"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 9583,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 9581,
"name": "valueIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9575,
"src": "2922:10:16",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"hexValue": "30",
"id": 9582,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2936:1:16",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "2922:15:16",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 9644,
"nodeType": "Block",
"src": "4030:37:16",
"statements": [
{
"expression": {
"hexValue": "66616c7365",
"id": 9642,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4051:5:16",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 9573,
"id": 9643,
"nodeType": "Return",
"src": "4044:12:16"
}
]
},
"id": 9645,
"nodeType": "IfStatement",
"src": "2918:1149:16",
"trueBody": {
"id": 9641,
"nodeType": "Block",
"src": "2939:1085:16",
"statements": [
{
"assignments": [
9585
],
"declarations": [
{
"constant": false,
"id": 9585,
"mutability": "mutable",
"name": "toDeleteIndex",
"nameLocation": "3299:13:16",
"nodeType": "VariableDeclaration",
"scope": 9641,
"src": "3291:21:16",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9584,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3291:7:16",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 9589,
"initialValue": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 9588,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 9586,
"name": "valueIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9575,
"src": "3315:10:16",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"hexValue": "31",
"id": 9587,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3328:1:16",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "3315:14:16",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3291:38:16"
},
{
"assignments": [
9591
],
"declarations": [
{
"constant": false,
"id": 9591,
"mutability": "mutable",
"name": "lastIndex",
"nameLocation": "3351:9:16",
"nodeType": "VariableDeclaration",
"scope": 9641,
"src": "3343:17:16",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9590,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3343:7:16",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 9597,
"initialValue": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 9596,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"expression": {
"id": 9592,
"name": "set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9567,
"src": "3363:3:16",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Set_$9521_storage_ptr",
"typeString": "struct EnumerableSet.Set storage pointer"
}
},
"id": 9593,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_values",
"nodeType": "MemberAccess",
"referencedDeclaration": 9516,
"src": "3363:11:16",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"id": 9594,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"src": "3363:18:16",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"hexValue": "31",
"id": 9595,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3384:1:16",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "3363:22:16",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3343:42:16"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 9600,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 9598,
"name": "lastIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9591,
"src": "3404:9:16",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"id": 9599,
"name": "toDeleteIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9585,
"src": "3417:13:16",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3404:26:16",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 9625,
"nodeType": "IfStatement",
"src": "3400:398:16",
"trueBody": {
"id": 9624,
"nodeType": "Block",
"src": "3432:366:16",
"statements": [
{
"assignments": [
9602
],
"declarations": [
{
"constant": false,
"id": 9602,
"mutability": "mutable",
"name": "lastValue",
"nameLocation": "3458:9:16",
"nodeType": "VariableDeclaration",
"scope": 9624,
"src": "3450:17:16",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 9601,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3450:7:16",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 9607,
"initialValue": {
"baseExpression": {
"expression": {
"id": 9603,
"name": "set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9567,
"src": "3470:3:16",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Set_$9521_storage_ptr",
"typeString": "struct EnumerableSet.Set storage pointer"
}
},
"id": 9604,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_values",
"nodeType": "MemberAccess",
"referencedDeclaration": 9516,
"src": "3470:11:16",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"id": 9606,
"indexExpression": {
"id": 9605,
"name": "lastIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9591,
"src": "3482:9:16",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3470:22:16",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3450:42:16"
},
{
"expression": {
"id": 9614,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {