@etherisc/depeg-contracts
Version:
Etherisc's smart contracts for a depeg insurance for stable coins.
1,196 lines • 147 kB
JSON
{
"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