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