UNPKG

@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
{ "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,