@etherisc/gif-contracts
Version:
This repository holds the GIF core contracts and tools to develop, test and deploy GIF instances.
1,223 lines (1,222 loc) • 97.9 kB
JSON
{
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_registry",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_contractName",
"type": "bytes32"
}
],
"name": "getContractFromRegistry",
"outputs": [
{
"internalType": "address",
"name": "_addr",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "registry",
"outputs": [
{
"internalType": "contract IRegistry",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"allSourcePaths": {
"44": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IRegistry.sol",
"91": "contracts/shared/WithRegistry.sol"
},
"ast": {
"absolutePath": "contracts/shared/WithRegistry.sol",
"exportedSymbols": {
"IRegistry": [
21750
],
"WithRegistry": [
15290
]
},
"id": 15291,
"license": "Apache-2.0",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 15172,
"literals": [
"solidity",
"0.8",
".2"
],
"nodeType": "PragmaDirective",
"src": "39:22:91"
},
{
"absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IRegistry.sol",
"file": "@etherisc/gif-interface/contracts/modules/IRegistry.sol",
"id": 15173,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 15291,
"sourceUnit": 21751,
"src": "63:65:91",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 15290,
"linearizedBaseContracts": [
15290
],
"name": "WithRegistry",
"nameLocation": "139:12:91",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "7b103999",
"id": 15176,
"mutability": "immutable",
"name": "registry",
"nameLocation": "439:8:91",
"nodeType": "VariableDeclaration",
"scope": 15290,
"src": "412:35:91",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IRegistry_$21750",
"typeString": "contract IRegistry"
},
"typeName": {
"id": 15175,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 15174,
"name": "IRegistry",
"nodeType": "IdentifierPath",
"referencedDeclaration": 21750,
"src": "412:9:91"
},
"referencedDeclaration": 21750,
"src": "412:9:91",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IRegistry_$21750",
"typeString": "contract IRegistry"
}
},
"visibility": "public"
},
{
"body": {
"id": 15189,
"nodeType": "Block",
"src": "486:174:91",
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 15184,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 15179,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "517:3:91",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 15180,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "517:10:91",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [
{
"hexValue": "496e7374616e63654f70657261746f7253657276696365",
"id": 15182,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "555:25:91",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544",
"typeString": "literal_string \"InstanceOperatorService\""
},
"value": "InstanceOperatorService"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544",
"typeString": "literal_string \"InstanceOperatorService\""
}
],
"id": 15181,
"name": "getContractFromRegistry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15259,
"src": "531:23:91",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 15183,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "531:50:91",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "517:64:91",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "4552524f523a41434d2d3030313a4e4f545f494e5354414e43455f4f50455241544f52",
"id": 15185,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "595:37:91",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_f3a7f4e2a80289cf210a753ae4c4fe18a01cd7346929f84e6c01ed7adb2558b5",
"typeString": "literal_string \"ERROR:ACM-001:NOT_INSTANCE_OPERATOR\""
},
"value": "ERROR:ACM-001:NOT_INSTANCE_OPERATOR"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_f3a7f4e2a80289cf210a753ae4c4fe18a01cd7346929f84e6c01ed7adb2558b5",
"typeString": "literal_string \"ERROR:ACM-001:NOT_INSTANCE_OPERATOR\""
}
],
"id": 15178,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "496:7:91",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 15186,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "496:146:91",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 15187,
"nodeType": "ExpressionStatement",
"src": "496:146:91"
},
{
"id": 15188,
"nodeType": "PlaceholderStatement",
"src": "652:1:91"
}
]
},
"id": 15190,
"name": "onlyInstanceOperator",
"nameLocation": "463:20:91",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 15177,
"nodeType": "ParameterList",
"parameters": [],
"src": "483:2:91"
},
"src": "454:206:91",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 15203,
"nodeType": "Block",
"src": "695:161:91",
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 15198,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 15193,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "726:3:91",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 15194,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "726:10:91",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [
{
"hexValue": "4f7261636c6553657276696365",
"id": 15196,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "764:15:91",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_b10ffebb48b8cc789ab1dfe7a210b91b4cf99b6d74d0c01c069195f8f6b41b06",
"typeString": "literal_string \"OracleService\""
},
"value": "OracleService"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_b10ffebb48b8cc789ab1dfe7a210b91b4cf99b6d74d0c01c069195f8f6b41b06",
"typeString": "literal_string \"OracleService\""
}
],
"id": 15195,
"name": "getContractFromRegistry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15259,
"src": "740:23:91",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 15197,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "740:40:91",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "726:54:91",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "4552524f523a41434d2d3030343a4e4f545f4f5241434c455f53455256494345",
"id": 15199,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "794:34:91",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_d677f66d7bfec5af2a8d25ec9362c317211e274b91d9b076b38b11583dfd9b36",
"typeString": "literal_string \"ERROR:ACM-004:NOT_ORACLE_SERVICE\""
},
"value": "ERROR:ACM-004:NOT_ORACLE_SERVICE"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_d677f66d7bfec5af2a8d25ec9362c317211e274b91d9b076b38b11583dfd9b36",
"typeString": "literal_string \"ERROR:ACM-004:NOT_ORACLE_SERVICE\""
}
],
"id": 15192,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "705:7:91",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 15200,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "705:133:91",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 15201,
"nodeType": "ExpressionStatement",
"src": "705:133:91"
},
{
"id": 15202,
"nodeType": "PlaceholderStatement",
"src": "848:1:91"
}
]
},
"id": 15204,
"name": "onlyOracleService",
"nameLocation": "675:17:91",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 15191,
"nodeType": "ParameterList",
"parameters": [],
"src": "692:2:91"
},
"src": "666:190:91",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 15217,
"nodeType": "Block",
"src": "889:164:91",
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 15212,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 15207,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "920:3:91",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 15208,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "920:10:91",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [
{
"hexValue": "4f7261636c654f776e657253657276696365",
"id": 15210,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "958:20:91",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_5370b1b73ce26fa37372cd254d27657dca183642e751f8b80db759067e223649",
"typeString": "literal_string \"OracleOwnerService\""
},
"value": "OracleOwnerService"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_5370b1b73ce26fa37372cd254d27657dca183642e751f8b80db759067e223649",
"typeString": "literal_string \"OracleOwnerService\""
}
],
"id": 15209,
"name": "getContractFromRegistry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15259,
"src": "934:23:91",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 15211,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "934:45:91",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "920:59:91",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "4552524f523a41434d2d3030353a4e4f545f4f5241434c455f4f574e4552",
"id": 15213,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "993:32:91",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_1f95eab606c31d24b7f40608196d82db71c763d923fa962ad1318b437fa4c528",
"typeString": "literal_string \"ERROR:ACM-005:NOT_ORACLE_OWNER\""
},
"value": "ERROR:ACM-005:NOT_ORACLE_OWNER"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_1f95eab606c31d24b7f40608196d82db71c763d923fa962ad1318b437fa4c528",
"typeString": "literal_string \"ERROR:ACM-005:NOT_ORACLE_OWNER\""
}
],
"id": 15206,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "899:7:91",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 15214,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "899:136:91",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 15215,
"nodeType": "ExpressionStatement",
"src": "899:136:91"
},
{
"id": 15216,
"nodeType": "PlaceholderStatement",
"src": "1045:1:91"
}
]
},
"id": 15218,
"name": "onlyOracleOwner",
"nameLocation": "871:15:91",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 15205,
"nodeType": "ParameterList",
"parameters": [],
"src": "886:2:91"
},
"src": "862:191:91",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 15231,
"nodeType": "Block",
"src": "1087:166:91",
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 15226,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 15221,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1118:3:91",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 15222,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "1118:10:91",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [
{
"hexValue": "50726f647563744f776e657253657276696365",
"id": 15224,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1156:21:91",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_04eb0524cc50da1dbdab34d277395549b73a25ea653ed26ebf24218d5fe70e69",
"typeString": "literal_string \"ProductOwnerService\""
},
"value": "ProductOwnerService"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_04eb0524cc50da1dbdab34d277395549b73a25ea653ed26ebf24218d5fe70e69",
"typeString": "literal_string \"ProductOwnerService\""
}
],
"id": 15223,
"name": "getContractFromRegistry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15259,
"src": "1132:23:91",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 15225,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1132:46:91",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "1118:60:91",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "4552524f523a41434d2d3030363a4e4f545f50524f445543545f4f574e4552",
"id": 15227,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1192:33:91",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_87c721089aea7fe34f59e6b44cacf11899e62ae1ac955bcd5783ec78cfda9689",
"typeString": "literal_string \"ERROR:ACM-006:NOT_PRODUCT_OWNER\""
},
"value": "ERROR:ACM-006:NOT_PRODUCT_OWNER"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_87c721089aea7fe34f59e6b44cacf11899e62ae1ac955bcd5783ec78cfda9689",
"typeString": "literal_string \"ERROR:ACM-006:NOT_PRODUCT_OWNER\""
}
],
"id": 15220,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "1097:7:91",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 15228,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1097:138:91",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 15229,
"nodeType": "ExpressionStatement",
"src": "1097:138:91"
},
{
"id": 15230,
"nodeType": "PlaceholderStatement",
"src": "1245:1:91"
}
]
},
"id": 15232,
"name": "onlyProductOwner",
"nameLocation": "1068:16:91",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 15219,
"nodeType": "ParameterList",
"parameters": [],
"src": "1084:2:91"
},
"src": "1059:194:91",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 15243,
"nodeType": "Block",
"src": "1290:48:91",
"statements": [
{
"expression": {
"id": 15241,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 15237,
"name": "registry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15176,
"src": "1300:8:91",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IRegistry_$21750",
"typeString": "contract IRegistry"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 15239,
"name": "_registry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15234,
"src": "1321:9:91",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 15238,
"name": "IRegistry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 21750,
"src": "1311:9:91",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IRegistry_$21750_$",
"typeString": "type(contract IRegistry)"
}
},
"id": 15240,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1311:20:91",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_IRegistry_$21750",
"typeString": "contract IRegistry"
}
},
"src": "1300:31:91",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IRegistry_$21750",
"typeString": "contract IRegistry"
}
},
"id": 15242,
"nodeType": "ExpressionStatement",
"src": "1300:31:91"
}
]
},
"id": 15244,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 15235,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 15234,
"mutability": "mutable",
"name": "_registry",
"nameLocation": "1279:9:91",
"nodeType": "VariableDeclaration",
"scope": 15244,
"src": "1271:17:91",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 15233,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1271:7:91",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "1270:19:91"
},
"returnParameters": {
"id": 15236,
"nodeType": "ParameterList",
"parameters": [],
"src": "1290:0:91"
},
"scope": 15290,
"src": "1259:79:91",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 15258,
"nodeType": "Block",
"src": "1484:60:91",
"statements": [
{
"expression": {
"id": 15256,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 15251,
"name": "_addr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15249,
"src": "1494:5:91",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 15254,
"name": "_contractName",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15246,
"src": "1523:13:91",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 15252,
"name": "registry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15176,
"src": "1502:8:91",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IRegistry_$21750",
"typeString": "contract IRegistry"
}
},
"id": 15253,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "getContract",
"nodeType": "MemberAccess",
"referencedDeclaration": 21723,
"src": "1502:20:91",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view external returns (address)"
}
},
"id": 15255,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1502:35:91",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "1494:43:91",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 15257,
"nodeType": "ExpressionStatement",
"src": "1494:43:91"
}
]
},
"functionSelector": "a5b25e71",
"id": 15259,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getContractFromRegistry",
"nameLocation": "1353:23:91",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 15247,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 15246,
"mutability": "mutable",
"name": "_contractName",
"nameLocation": "1385:13:91",
"nodeType": "VariableDeclaration",
"scope": 15259,
"src": "1377:21:91",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 15245,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1377:7:91",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "1376:23:91"
},
"returnParameters": {
"id": 15250,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 15249,
"mutability": "mutable",
"name": "_addr",
"nameLocation": "1473:5:91",
"nodeType": "VariableDeclaration",
"scope": 15259,
"src": "1465:13:91",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 15248,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1465:7:91",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "1464:15:91"
},
"scope": 15290,
"src": "1344:200:91",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 15276,
"nodeType": "Block",
"src": "1699:79:91",
"statements": [
{
"expression": {
"id": 15274,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,