UNPKG

@etherisc/depeg-contracts

Version:

Etherisc's smart contracts for a depeg insurance for stable coins.

1,196 lines 147 kB
{ "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "registry", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "allSourcePaths": { "1": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/proxy/utils/Initializable.sol", "10": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/Address.sol", "11": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/Context.sol", "22": "/home/vscode/.brownie/packages/etherisc/gif-contracts@b58fd27/contracts/shared/CoreController.sol", "33": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IAccess.sol", "38": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IRegistry.sol" }, "ast": { "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-contracts@b58fd27/contracts/shared/CoreController.sol", "exportedSymbols": { "Address": [ 24852 ], "Context": [ 15648 ], "CoreController": [ 21649 ], "IAccess": [ 22927 ], "IRegistry": [ 21976 ], "Initializable": [ 23690 ] }, "id": 21650, "license": "Apache-2.0", "nodeType": "SourceUnit", "nodes": [ { "id": 21515, "literals": [ "solidity", "0.8", ".2" ], "nodeType": "PragmaDirective", "src": "39:22:22" }, { "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IAccess.sol", "file": "@etherisc/gif-interface/contracts/modules/IAccess.sol", "id": 21516, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 21650, "sourceUnit": 22928, "src": "63:63:22", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IRegistry.sol", "file": "@etherisc/gif-interface/contracts/modules/IRegistry.sol", "id": 21517, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 21650, "sourceUnit": 21977, "src": "127:65:22", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/proxy/utils/Initializable.sol", "file": "@openzeppelin/contracts/proxy/utils/Initializable.sol", "id": 21518, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 21650, "sourceUnit": 23691, "src": "194:63:22", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/Context.sol", "file": "@openzeppelin/contracts/utils/Context.sol", "id": 21519, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 21650, "sourceUnit": 15649, "src": "258:51:22", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "baseName": { "id": 21520, "name": "Context", "nodeType": "IdentifierPath", "referencedDeclaration": 15648, "src": "342:7:22" }, "id": 21521, "nodeType": "InheritanceSpecifier", "src": "342:7:22" }, { "baseName": { "id": 21522, "name": "Initializable", "nodeType": "IdentifierPath", "referencedDeclaration": 23690, "src": "355:13:22" }, "id": 21523, "nodeType": "InheritanceSpecifier", "src": "355:13:22" } ], "contractDependencies": [ 15648, 23690 ], "contractKind": "contract", "fullyImplemented": true, "id": 21649, "linearizedBaseContracts": [ 21649, 23690, 15648 ], "name": "CoreController", "nameLocation": "320:14:22", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 21526, "mutability": "mutable", "name": "_registry", "nameLocation": "395:9:22", "nodeType": "VariableDeclaration", "scope": 21649, "src": "376:28:22", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IRegistry_$21976", "typeString": "contract IRegistry" }, "typeName": { "id": 21525, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 21524, "name": "IRegistry", "nodeType": "IdentifierPath", "referencedDeclaration": 21976, "src": "376:9:22" }, "referencedDeclaration": 21976, "src": "376:9:22", "typeDescriptions": { "typeIdentifier": "t_contract$_IRegistry_$21976", "typeString": "contract IRegistry" } }, "visibility": "internal" }, { "constant": false, "id": 21529, "mutability": "mutable", "name": "_access", "nameLocation": "427:7:22", "nodeType": "VariableDeclaration", "scope": 21649, "src": "410:24:22", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IAccess_$22927", "typeString": "contract IAccess" }, "typeName": { "id": 21528, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 21527, "name": "IAccess", "nodeType": "IdentifierPath", "referencedDeclaration": 22927, "src": "410:7:22" }, "referencedDeclaration": 22927, "src": "410:7:22", "typeDescriptions": { "typeIdentifier": "t_contract$_IAccess_$22927", "typeString": "contract IAccess" } }, "visibility": "internal" }, { "body": { "id": 21535, "nodeType": "Block", "src": "456:39:22", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 21532, "name": "_disableInitializers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 23689, "src": "466:20:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 21533, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "466:22:22", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21534, "nodeType": "ExpressionStatement", "src": "466:22:22" } ] }, "id": 21536, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { "id": 21530, "nodeType": "ParameterList", "parameters": [], "src": "453:2:22" }, "returnParameters": { "id": 21531, "nodeType": "ParameterList", "parameters": [], "src": "456:0:22" }, "scope": 21649, "src": "441:54:22", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 21549, "nodeType": "Block", "src": "533:164:22", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "arguments": [], "expression": { "argumentTypes": [], "id": 21541, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15638, "src": "587:10:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, "id": 21542, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "587:12:22", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "hexValue": "496e7374616e63654f70657261746f7253657276696365", "id": 21543, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "601:25:22", "typeDescriptions": { "typeIdentifier": "t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544", "typeString": "literal_string \"InstanceOperatorService\"" }, "value": "InstanceOperatorService" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544", "typeString": "literal_string \"InstanceOperatorService\"" } ], "expression": { "id": 21539, "name": "_registry", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21526, "src": "564:9:22", "typeDescriptions": { "typeIdentifier": "t_contract$_IRegistry_$21976", "typeString": "contract IRegistry" } }, "id": 21540, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ensureSender", "nodeType": "MemberAccess", "referencedDeclaration": 21963, "src": "564:22:22", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bool_$", "typeString": "function (address,bytes32) view external returns (bool)" } }, "id": 21544, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "564:63:22", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f50455241544f52", "id": 21545, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "641:37:22", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1", "typeString": "literal_string \"ERROR:CRC-001:NOT_INSTANCE_OPERATOR\"" }, "value": "ERROR:CRC-001:NOT_INSTANCE_OPERATOR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1", "typeString": "literal_string \"ERROR:CRC-001:NOT_INSTANCE_OPERATOR\"" } ], "id": 21538, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "543:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 21546, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "543:136:22", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21547, "nodeType": "ExpressionStatement", "src": "543:136:22" }, { "id": 21548, "nodeType": "PlaceholderStatement", "src": "689:1:22" } ] }, "id": 21550, "name": "onlyInstanceOperator", "nameLocation": "510:20:22", "nodeType": "ModifierDefinition", "parameters": { "id": 21537, "nodeType": "ParameterList", "parameters": [], "src": "530:2:22" }, "src": "501:196:22", "virtual": false, "visibility": "internal" }, { "body": { "id": 21577, "nodeType": "Block", "src": "743:394:22", "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 21562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "id": 21557, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "819:4:22", "typeDescriptions": { "typeIdentifier": "t_contract$_CoreController_$21649", "typeString": "contract CoreController" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_CoreController_$21649", "typeString": "contract CoreController" } ], "id": 21556, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "811:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 21555, "name": "address", "nodeType": "ElementaryTypeName", "src": "811:7:22", "typeDescriptions": {} } }, "id": 21558, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "811:13:22", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [ { "id": 21560, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21552, "src": "848:6:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 21559, "name": "_getContractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21648, "src": "828:19:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32) view returns (address)" } }, "id": 21561, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "828:27:22", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "811:44:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552524f523a4352432d3030323a4e4f545f4f4e5f53544f52414745", "id": 21563, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "869:30:22", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4", "typeString": "literal_string \"ERROR:CRC-002:NOT_ON_STORAGE\"" }, "value": "ERROR:CRC-002:NOT_ON_STORAGE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4", "typeString": "literal_string \"ERROR:CRC-002:NOT_ON_STORAGE\"" } ], "id": 21554, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "790:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 21564, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "790:119:22", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21565, "nodeType": "ExpressionStatement", "src": "790:119:22" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 21572, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "id": 21567, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15638, "src": "1007:10:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, "id": 21568, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1007:12:22", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [ { "hexValue": "50726f6475637453657276696365", "id": 21570, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1043:16:22", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a0656cfcc1bc970b947aca201a5cc1b43cf3c3649a4b2d6f82968797074fe0b8", "typeString": "literal_string \"ProductService\"" }, "value": "ProductService" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_a0656cfcc1bc970b947aca201a5cc1b43cf3c3649a4b2d6f82968797074fe0b8", "typeString": "literal_string \"ProductService\"" } ], "id": 21569, "name": "_getContractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21648, "src": "1023:19:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32) view returns (address)" } }, "id": 21571, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1023:37:22", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1007:53:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552524f523a4352432d3030333a4e4f545f50524f445543545f53455256494345", "id": 21573, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1074:35:22", "typeDescriptions": { "typeIdentifier": "t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0", "typeString": "literal_string \"ERROR:CRC-003:NOT_PRODUCT_SERVICE\"" }, "value": "ERROR:CRC-003:NOT_PRODUCT_SERVICE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0", "typeString": "literal_string \"ERROR:CRC-003:NOT_PRODUCT_SERVICE\"" } ], "id": 21566, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "986:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 21574, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "986:133:22", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21575, "nodeType": "ExpressionStatement", "src": "986:133:22" }, { "id": 21576, "nodeType": "PlaceholderStatement", "src": "1129:1:22" } ] }, "id": 21578, "name": "onlyPolicyFlow", "nameLocation": "712:14:22", "nodeType": "ModifierDefinition", "parameters": { "id": 21553, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 21552, "mutability": "mutable", "name": "module", "nameLocation": "735:6:22", "nodeType": "VariableDeclaration", "scope": 21578, "src": "727:14:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 21551, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "727:7:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "726:16:22" }, "src": "703:434:22", "virtual": false, "visibility": "internal" }, { "body": { "id": 21608, "nodeType": "Block", "src": "1200:175:22", "statements": [ { "expression": { "id": 21589, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 21585, "name": "_registry", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21526, "src": "1210:9:22", "typeDescriptions": { "typeIdentifier": "t_contract$_IRegistry_$21976", "typeString": "contract IRegistry" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 21587, "name": "registry", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21580, "src": "1232:8:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 21586, "name": "IRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21976, "src": "1222:9:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IRegistry_$21976_$", "typeString": "type(contract IRegistry)" } }, "id": 21588, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1222:19:22", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IRegistry_$21976", "typeString": "contract IRegistry" } }, "src": "1210:31:22", "typeDescriptions": { "typeIdentifier": "t_contract$_IRegistry_$21976", "typeString": "contract IRegistry" } }, "id": 21590, "nodeType": "ExpressionStatement", "src": "1210:31:22" }, { "condition": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 21594, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "id": 21591, "name": "_getName", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21617, "src": "1255:8:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, "id": 21592, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1255:10:22", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "hexValue": "416363657373", "id": 21593, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1269:8:22", "typeDescriptions": { "typeIdentifier": "t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee", "typeString": "literal_string \"Access\"" }, "value": "Access" }, "src": "1255:22:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 21604, "nodeType": "IfStatement", "src": "1251:81:22", "trueBody": { "id": 21603, "nodeType": "Block", "src": "1279:53:22", "statements": [ { "expression": { "id": 21601, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 21595, "name": "_access", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21529, "src": "1281:7:22", "typeDescriptions": { "typeIdentifier": "t_contract$_IAccess_$22927", "typeString": "contract IAccess" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "arguments": [ { "hexValue": "416363657373", "id": 21598, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1319:8:22", "typeDescriptions": { "typeIdentifier": "t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee", "typeString": "literal_string \"Access\"" }, "value": "Access" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee", "typeString": "literal_string \"Access\"" } ], "id": 21597, "name": "_getContractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21648, "src": "1299:19:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32) view returns (address)" } }, "id": 21599, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1299:29:22", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 21596, "name": "IAccess", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 22927, "src": "1291:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IAccess_$22927_$", "typeString": "type(contract IAccess)" } }, "id": 21600, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1291:38:22", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IAccess_$22927", "typeString": "contract IAccess" } }, "src": "1281:48:22", "typeDescriptions": { "typeIdentifier": "t_contract$_IAccess_$22927", "typeString": "contract IAccess" } }, "id": 21602, "nodeType": "ExpressionStatement", "src": "1281:48:22" } ] } }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 21605, "name": "_afterInitialize", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21623, "src": "1350:16:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonp