UNPKG

@etherisc/gif-contracts

Version:

This repository holds the GIF core contracts and tools to develop, test and deploy GIF instances.

1,358 lines 729 kB
{ "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "requestId", "type": "uint256" } ], "name": "LogOracleCanceled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "processId", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", "name": "requestId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "responsibleOracleId", "type": "uint256" } ], "name": "LogOracleRequested", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "processId", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", "name": "requestId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "responder", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "success", "type": "bool" } ], "name": "LogOracleResponded", "type": "event" }, { "inputs": [ { "internalType": "uint256", "name": "requestId", "type": "uint256" } ], "name": "cancel", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getOracleRequestCount", "outputs": [ { "internalType": "uint256", "name": "_count", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "requestId", "type": "uint256" } ], "name": "getProcessId", "outputs": [ { "internalType": "bytes32", "name": "processId", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "registry", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "processId", "type": "bytes32" }, { "internalType": "bytes", "name": "input", "type": "bytes" }, { "internalType": "string", "name": "callbackMethodName", "type": "string" }, { "internalType": "address", "name": "callbackContractAddress", "type": "address" }, { "internalType": "uint256", "name": "responsibleOracleId", "type": "uint256" } ], "name": "request", "outputs": [ { "internalType": "uint256", "name": "requestId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "requestId", "type": "uint256" }, { "internalType": "address", "name": "responder", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "respond", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "allSourcePaths": { "10": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/proxy/utils/Initializable.sol", "21": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/Address.sol", "22": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/Context.sol", "27": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/structs/EnumerableSet.sol", "30": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IComponent.sol", "31": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IOracle.sol", "32": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IProduct.sol", "37": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IAccess.sol", "39": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IComponentEvents.sol", "43": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IQuery.sol", "44": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IRegistry.sol", "75": "contracts/modules/ComponentController.sol", "79": "contracts/modules/QueryModule.sol", "88": "contracts/shared/CoreController.sol" }, "ast": { "absolutePath": "contracts/modules/QueryModule.sol", "exportedSymbols": { "Address": [ 26374 ], "ComponentController": [ 6504 ], "Context": [ 24074 ], "CoreController": [ 14924 ], "EnumerableSet": [ 19390 ], "IAccess": [ 21938 ], "IBundle": [ 20491 ], "IBundleToken": [ 24052 ], "IComponent": [ 22099 ], "IComponentEvents": [ 22419 ], "IComponentOwnerService": [ 23478 ], "IERC165": [ 27203 ], "IERC20": [ 18510 ], "IERC721": [ 23745 ], "IInstanceOperatorService": [ 23629 ], "IInstanceService": [ 22849 ], "IOracle": [ 22133 ], "IOracleService": [ 23755 ], "IPolicy": [ 20837 ], "IPool": [ 21652 ], "IProduct": [ 21995 ], "IProductService": [ 23900 ], "IQuery": [ 22500 ], "IRegistry": [ 21750 ], "IRiskpool": [ 22366 ], "IRiskpoolService": [ 24006 ], "ITreasury": [ 23443 ], "Initializable": [ 18432 ], "QueryModule": [ 10106 ] }, "id": 10107, "license": "Apache-2.0", "nodeType": "SourceUnit", "nodes": [ { "id": 9721, "literals": [ "solidity", "0.8", ".2" ], "nodeType": "PragmaDirective", "src": "39:22:79" }, { "absolutePath": "contracts/modules/ComponentController.sol", "file": "./ComponentController.sol", "id": 9722, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 10107, "sourceUnit": 6505, "src": "63:35:79", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "contracts/shared/CoreController.sol", "file": "../shared/CoreController.sol", "id": 9723, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 10107, "sourceUnit": 14925, "src": "99:38:79", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IComponent.sol", "file": "@etherisc/gif-interface/contracts/components/IComponent.sol", "id": 9724, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 10107, "sourceUnit": 22100, "src": "139:69:79", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IOracle.sol", "file": "@etherisc/gif-interface/contracts/components/IOracle.sol", "id": 9725, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 10107, "sourceUnit": 22134, "src": "209:66:79", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IQuery.sol", "file": "@etherisc/gif-interface/contracts/modules/IQuery.sol", "id": 9726, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 10107, "sourceUnit": 22501, "src": "276:62:79", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IInstanceService.sol", "file": "@etherisc/gif-interface/contracts/services/IInstanceService.sol", "id": 9727, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 10107, "sourceUnit": 22850, "src": "339:73:79", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "baseName": { "id": 9728, "name": "IQuery", "nodeType": "IdentifierPath", "referencedDeclaration": 22500, "src": "444:6:79" }, "id": 9729, "nodeType": "InheritanceSpecifier", "src": "444:6:79" }, { "baseName": { "id": 9730, "name": "CoreController", "nodeType": "IdentifierPath", "referencedDeclaration": 14924, "src": "457:14:79" }, "id": 9731, "nodeType": "InheritanceSpecifier", "src": "457:14:79" } ], "contractDependencies": [ 14924, 18432, 22500, 24074 ], "contractKind": "contract", "fullyImplemented": true, "id": 10106, "linearizedBaseContracts": [ 10106, 14924, 18432, 24074, 22500 ], "name": "QueryModule", "nameLocation": "424:11:79", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 9734, "mutability": "mutable", "name": "_component", "nameLocation": "506:10:79", "nodeType": "VariableDeclaration", "scope": 10106, "src": "478:38:79", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_ComponentController_$6504", "typeString": "contract ComponentController" }, "typeName": { "id": 9733, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 9732, "name": "ComponentController", "nodeType": "IdentifierPath", "referencedDeclaration": 6504, "src": "478:19:79" }, "referencedDeclaration": 6504, "src": "478:19:79", "typeDescriptions": { "typeIdentifier": "t_contract$_ComponentController_$6504", "typeString": "contract ComponentController" } }, "visibility": "private" }, { "constant": false, "id": 9738, "mutability": "mutable", "name": "_oracleRequests", "nameLocation": "546:15:79", "nodeType": "VariableDeclaration", "scope": 10106, "src": "522:39:79", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_OracleRequest_$22448_storage_$dyn_storage", "typeString": "struct IQuery.OracleRequest[]" }, "typeName": { "baseType": { "id": 9736, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 9735, "name": "OracleRequest", "nodeType": "IdentifierPath", "referencedDeclaration": 22448, "src": "522:13:79" }, "referencedDeclaration": 22448, "src": "522:13:79", "typeDescriptions": { "typeIdentifier": "t_struct$_OracleRequest_$22448_storage_ptr", "typeString": "struct IQuery.OracleRequest" } }, "id": 9737, "nodeType": "ArrayTypeName", "src": "522:15:79", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_OracleRequest_$22448_storage_$dyn_storage_ptr", "typeString": "struct IQuery.OracleRequest[]" } }, "visibility": "private" }, { "body": { "id": 9751, "nodeType": "Block", "src": "597:159:79", "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 9746, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "id": 9741, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24064, "src": "628:10:79", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, "id": 9742, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "628:12:79", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [ { "hexValue": "4f7261636c6553657276696365", "id": 9744, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "664:15:79", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b10ffebb48b8cc789ab1dfe7a210b91b4cf99b6d74d0c01c069195f8f6b41b06", "typeString": "literal_string \"OracleService\"" }, "value": "OracleService" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_b10ffebb48b8cc789ab1dfe7a210b91b4cf99b6d74d0c01c069195f8f6b41b06", "typeString": "literal_string \"OracleService\"" } ], "id": 9743, "name": "_getContractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14923, "src": "644:19:79", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32) view returns (address)" } }, "id": 9745, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "644:36:79", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "628:52:79", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552524f523a4352432d3030313a4e4f545f4f5241434c455f53455256494345", "id": 9747, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "694:34:79", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b09558737285c53e42f0cbb18d7098ce341b428cc4a700a20d5110ababfaf7a6", "typeString": "literal_string \"ERROR:CRC-001:NOT_ORACLE_SERVICE\"" }, "value": "ERROR:CRC-001:NOT_ORACLE_SERVICE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_b09558737285c53e42f0cbb18d7098ce341b428cc4a700a20d5110ababfaf7a6", "typeString": "literal_string \"ERROR:CRC-001:NOT_ORACLE_SERVICE\"" } ], "id": 9740, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "607:7:79", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 9748, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "607:131:79", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 9749, "nodeType": "ExpressionStatement", "src": "607:131:79" }, { "id": 9750, "nodeType": "PlaceholderStatement", "src": "748:1:79" } ] }, "id": 9752, "name": "onlyOracleService", "nameLocation": "577:17:79", "nodeType": "ModifierDefinition", "parameters": { "id": 9739, "nodeType": "ParameterList", "parameters": [], "src": "594:2:79" }, "src": "568:188:79", "virtual": false, "visibility": "internal" }, { "body": { "id": 9795, "nodeType": "Block", "src": "831:453:79", "statements": [ { "assignments": [ 9760 ], "declarations": [ { "constant": false, "id": 9760, "mutability": "mutable", "name": "oracleRequest", "nameLocation": "862:13:79", "nodeType": "VariableDeclaration", "scope": 9795, "src": "841:34:79", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_OracleRequest_$22448_memory_ptr", "typeString": "struct IQuery.OracleRequest" }, "typeName": { "id": 9759, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 9758, "name": "OracleRequest", "nodeType": "IdentifierPath", "referencedDeclaration": 22448, "src": "841:13:79" }, "referencedDeclaration": 22448, "src": "841:13:79", "typeDescriptions": { "typeIdentifier": "t_struct$_OracleRequest_$22448_storage_ptr", "typeString": "struct IQuery.OracleRequest" } }, "visibility": "internal" } ], "id": 9764, "initialValue": { "baseExpression": { "id": 9761, "name": "_oracleRequests", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9738, "src": "878:15:79", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_OracleRequest_$22448_storage_$dyn_storage", "typeString": "struct IQuery.OracleRequest storage ref[] storage ref" } }, "id": 9763, "indexExpression": { "id": 9762, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9754, "src": "894:9:79", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "878:26:79", "typeDescriptions": { "typeIdentifier": "t_struct$_OracleRequest_$22448_storage", "typeString": "struct IQuery.OracleRequest storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "841:63:79" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 9769, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 9766, "name": "oracleRequest", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9760, "src": "936:13:79", "typeDescriptions": { "typeIdentifier": "t_struct$_OracleRequest_$22448_memory_ptr", "typeString": "struct IQuery.OracleRequest memory" } }, "id": 9767, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "createdAt", "nodeType": "MemberAccess", "referencedDeclaration": 22447, "src": "936:23:79", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "hexValue": "30", "id": 9768, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "962:1:79", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "936:27:79", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552524f523a5155432d3030323a524551554553545f49445f494e56414c4944", "id": 9770, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "977:34:79", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f9911dbe79685a0b4bf01426459429095d797386123a16b8f4eb178ae8660c1c", "typeString": "literal_string \"ERROR:QUC-002:REQUEST_ID_INVALID\"" }, "value": "ERROR:QUC-002:REQUEST_ID_INVALID" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_f9911dbe79685a0b4bf01426459429095d797386123a16b8f4eb178ae8660c1c", "typeString": "literal_string \"ERROR:QUC-002:REQUEST_ID_INVALID\"" } ], "id": 9765, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "915:7:79", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 9771, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "915:106:79", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 9772, "nodeType": "ExpressionStatement", "src": "915:106:79" }, { "assignments": [ 9774 ], "declarations": [ { "constant": false, "id": 9774, "mutability": "mutable", "name": "oracleId", "nameLocation": "1040:8:79", "nodeType": "VariableDeclaration", "scope": 9795, "src": "1032:16:79", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 9773, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1032:7:79", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 9777, "initialValue": { "expression": { "id": 9775, "name": "oracleRequest", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9760, "src": "1051:13:79", "typeDescriptions": { "typeIdentifier": "t_struct$_OracleRequest_$22448_memory_ptr", "typeString": "struct IQuery.OracleRequest memory" } }, "id": 9776, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "responsibleOracleId", "nodeType": "MemberAccess", "referencedDeclaration": 22439, "src": "1051:33:79", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "1032:52:79" }, { "assignments": [ 9779 ], "declarations": [ { "constant": false, "id": 9779, "mutability": "mutable", "name": "oracleAddress", "nameLocation": "1102:13:79", "nodeType": "VariableDeclaration", "scope": 9795, "src": "1094:21:79", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 9778, "name": "address", "nodeType": "ElementaryTypeName", "src": "1094:7:79", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "id": 9786, "initialValue": { "arguments": [ { "arguments": [ { "id": 9783, "name": "oracleId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9774, "src": "1137:8:79", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 9782, "name": "_getOracle", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10105, "src": "1126:10:79", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_contract$_IOracle_$22133_$", "typeString": "function (uint256) view returns (contract IOracle)" } }, "id": 9784, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1126:20:79", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IOracle_$22133", "typeString": "contract IOracle" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_IOracle_$22133", "typeString": "contract IOracle" } ], "id": 9781, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1118:7:79", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 9780, "name": "address", "nodeType": "ElementaryTypeName", "src": "1118:7:79", "typeDescriptions": {} } }, "id": 9785, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1118:29:79", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "1094:53:79" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 9790, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 9788, "name": "oracleAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9779, "src": "1178:13:79", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 9789, "name": "responder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9756, "src": "1195:9:79", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1178:26:79", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552524f523a5155432d3030333a4f5241434c455f4e4f545f524553504f4e5349424c45", "id": 9791, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1218:38:79", "typeDescriptions": { "typeIdentifier": "t_stringliteral_79c2419dd3836252a491e5fd1368db9c3868a0e1853d9bbe27ed6a8000a2b07d", "typeString": "literal_string \"ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE\"" }, "value": "ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_79c2419dd3836252a491e5fd1368db9c3868a0e1853d9bbe27ed6a8000a2b07d", "typeString": "literal_string \"ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE\"" } ], "id": 9787, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1157:7:79", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 9792, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1157:109:79", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 9793, "nodeType": "ExpressionStatement", "src": "1157:109:79" }, { "id": 9794, "nodeType": "PlaceholderStatement", "src": "1276:1:79" } ] }, "id": 9796, "name": "onlyResponsibleOracle", "nameLocation": "771:21:79", "nodeType": "ModifierDefinition", "parameters": { "id": 9757, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 9754, "mutability": "mutable", "name": "requestId", "nameLocation": "801:9:79", "nodeType": "VariableDeclaration", "scope": 9796, "src": "793:17:79", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 9753, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "793:7:79", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 9756, "mutability": "mutable", "name": "responder", "nameLocation": "820:9:79", "nodeType": "VariableDeclaration", "scope": 9796, "src": "812:17:79", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 9755, "name": "address", "nodeType": "ElementaryTypeName", "src": "812:7:79", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "792:38:79" }, "src": "762:522:79", "virtual": false, "visibility": "internal" }, { "baseFunctions": [ 14898 ], "body": { "id": 9810, "nodeType": "Block", "src": "1353:83:79", "statements": [ { "expression": { "id": 9808, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 9802, "name": "_component", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9734, "src": "1363:10:79", "typeDescriptions": { "typeIdentifier": "t_contract$_ComponentController_$6504", "typeString": "contract ComponentController" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "arguments": [ { "hexValue": "436f6d706f6e656e74", "id": 9805, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1416:11:79", "typeDescriptions": { "typeIdentifier": "t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24", "typeString": "literal_string \"Component\"" }, "value": "Component" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_20422c9fb475bf3099f246b9754fae871c7