UNPKG

witnet-solidity-bridge

Version:

Witnet Solidity Bridge contracts for EVM-compatible chains

1,071 lines 58 kB
{ "contractName": "IWitnetOracleReporter", "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "queryId", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "reason", "type": "string" } ], "name": "BatchReportError", "type": "event" }, { "inputs": [ { "internalType": "uint256[]", "name": "witnetQueryIds", "type": "uint256[]" }, { "internalType": "bytes", "name": "reportTxMsgData", "type": "bytes" }, { "internalType": "uint256", "name": "reportTxGasPrice", "type": "uint256" }, { "internalType": "uint256", "name": "nanoWitPrice", "type": "uint256" } ], "name": "estimateReportEarnings", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "queryIds", "type": "uint256[]" } ], "name": "extractWitnetDataRequests", "outputs": [ { "internalType": "bytes[]", "name": "drBytecodes", "type": "bytes[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "witnetQueryId", "type": "uint256" }, { "internalType": "bytes32", "name": "witnetQueryResultTallyHash", "type": "bytes32" }, { "internalType": "bytes", "name": "witnetQueryResultCborBytes", "type": "bytes" } ], "name": "reportResult", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "witnetQueryId", "type": "uint256" }, { "internalType": "uint32", "name": "witnetQueryResultTimestamp", "type": "uint32" }, { "internalType": "bytes32", "name": "witnetQueryResultTallyHash", "type": "bytes32" }, { "internalType": "bytes", "name": "witnetQueryResultCborBytes", "type": "bytes" } ], "name": "reportResult", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint256", "name": "queryId", "type": "uint256" }, { "internalType": "uint32", "name": "queryResultTimestamp", "type": "uint32" }, { "internalType": "bytes32", "name": "queryResultTallyHash", "type": "bytes32" }, { "internalType": "bytes", "name": "queryResultCborBytes", "type": "bytes" } ], "internalType": "struct IWitnetOracleReporter.BatchResult[]", "name": "_batchResults", "type": "tuple[]" } ], "name": "reportResultBatch", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"queryId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"BatchReportError\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"witnetQueryIds\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"reportTxMsgData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"reportTxGasPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nanoWitPrice\",\"type\":\"uint256\"}],\"name\":\"estimateReportEarnings\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"queryIds\",\"type\":\"uint256[]\"}],\"name\":\"extractWitnetDataRequests\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"drBytecodes\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"witnetQueryId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witnetQueryResultTallyHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"witnetQueryResultCborBytes\",\"type\":\"bytes\"}],\"name\":\"reportResult\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"witnetQueryId\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"witnetQueryResultTimestamp\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"witnetQueryResultTallyHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"witnetQueryResultCborBytes\",\"type\":\"bytes\"}],\"name\":\"reportResult\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"queryId\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"queryResultTimestamp\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"queryResultTallyHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"queryResultCborBytes\",\"type\":\"bytes\"}],\"internalType\":\"struct IWitnetOracleReporter.BatchResult[]\",\"name\":\"_batchResults\",\"type\":\"tuple[]\"}],\"name\":\"reportResultBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"The Witnet Foundation.\",\"kind\":\"dev\",\"methods\":{\"extractWitnetDataRequests(uint256[])\":{\"details\":\"Returns empty buffer if the query does not exist.\",\"params\":{\"queryIds\":\"Query identifiers.\"}},\"reportResult(uint256,bytes32,bytes)\":{\"details\":\"Will assume `block.timestamp` as the timestamp at which the request was solved.Fails if:- the `_witnetQueryId` is not in 'Posted' status.- provided `_tallyHash` is zero;- length of provided `_result` is zero.\",\"params\":{\"witnetQueryId\":\"The unique identifier of the data request.\",\"witnetQueryResultCborBytes\":\"The result itself as bytes.\",\"witnetQueryResultTallyHash\":\"The hash of the corresponding data request transaction in Witnet.\"}},\"reportResult(uint256,uint32,bytes32,bytes)\":{\"details\":\"Fails if:- called from unauthorized address;- the `_witnetQueryId` is not in 'Posted' status.- provided `_tallyHash` is zero;- length of provided `_result` is zero.\",\"params\":{\"witnetQueryId\":\"The unique query identifier\",\"witnetQueryResultCborBytes\":\"The result itself as bytes.\",\"witnetQueryResultTallyHash\":\"The hash of the corresponding data request transaction in Witnet.\",\"witnetQueryResultTimestamp\":\"The timestamp of the solving tally transaction in Witnet.\"}},\"reportResultBatch((uint256,uint32,bytes32,bytes)[])\":{\"details\":\"Fails only if called from unauthorized address.\",\"params\":{\"_batchResults\":\"Array of BatchResult structs, every one containing: - unique query identifier; - timestamp of the solving tally txs in Witnet. If zero is provided, EVM-timestamp will be used instead; - hash of the corresponding data request tx at the Witnet side-chain level; - data request result in raw bytes.\"}}},\"title\":\"The Witnet Request Board Reporter interface.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"estimateReportEarnings(uint256[],bytes,uint256,uint256)\":{\"notice\":\"Estimates the actual earnings in WEI, that a reporter would get by reporting result to given query,based on the gas price of the calling transaction. Data requesters should consider upgrading the reward on queries providing no actual earnings.\"},\"extractWitnetDataRequests(uint256[])\":{\"notice\":\"Retrieves the Witnet Data Request bytecodes and SLAs of previously posted queries.\"},\"reportResult(uint256,bytes32,bytes)\":{\"notice\":\"Reports the Witnet-provided result to a previously posted request. \"},\"reportResult(uint256,uint32,bytes32,bytes)\":{\"notice\":\"Reports the Witnet-provided result to a previously posted request.\"},\"reportResultBatch((uint256,uint32,bytes32,bytes)[])\":{\"notice\":\"Reports Witnet-provided results to multiple requests within a single EVM tx.Emits either a WitnetQueryResponse* or a BatchReportError event per batched report.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/interfaces/IWitnetOracleReporter.sol\":\"IWitnetOracleReporter\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/interfaces/IWitnetOracleReporter.sol\":{\"keccak256\":\"0xf4726c5c522b99ce01c2c870c259ebb8dc1563a25df3d715ed78cff89a8bb122\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11d4d7205c416fc2927856c2ab64a7d2d5374900c6ad41320f512a0f2e17f215\",\"dweb:/ipfs/QmW8gmJ5rkd4K7ahPQ6KuCQ5wdnhoZJTpSL5iPkZcg2dAe\"]},\"project:/contracts/libs/Witnet.sol\":{\"keccak256\":\"0x65a87375dd79d63a83fb454b7199b6c999bd59c50b3b59d521c5c4d45a7d3cc3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca865b681d810c2fc5c3672ea6343c3bdf6fd71764ab824d25994744dc85866b\",\"dweb:/ipfs/QmPGcP3xGTNZfsQ9GSKdujNLRVs8dWDdubyUko1rbQqJNv\"]},\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0xa14570492eb5a313ddbacae0185c850ec99c67211eb33989a5e21d31bf06a150\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e83c11edb49cab6a767c0b685825bc22ece0d3d2897e0d54fe1923df5cc76ba5\",\"dweb:/ipfs/QmdLDgCc3tnKbgRrXwfNzsg6uUDirNmjvBB8V3iMmnD69a\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xb346547ff731163beea2c657c52675cdf7936691d566a76a045577cf9c34ade0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d4b5b6424a033584b41f1204d635db98fda9ca9bd2a614c9d82539a3e4e6529\",\"dweb:/ipfs/QmW6Qy3wWpzHSECYaCPaf9LWGfPqWDKVoP2kPSNNQu7LMQ\"]},\"project:/contracts/libs/WitnetV2.sol\":{\"keccak256\":\"0xb276a6da373bfbe9cd942dd7e59979cda898215d1e36ab3df95a6d6cc6ff770f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc4890876b9bc64f501ccdd48408bb63724865cb2ce8d2057f6b318540adce7c\",\"dweb:/ipfs/QmPMHPdbCsKBavhiLcaDgQ9EjNSvwwzv8TKffotcCv1ctP\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, "generatedSources": [], "deployedGeneratedSources": [], "sourceMap": "", "deployedSourceMap": "", "source": "// SPDX-License-Identifier: MIT\r\n\r\npragma solidity >=0.7.0 <0.9.0;\r\n\r\nimport \"../libs/WitnetV2.sol\";\r\n\r\n/// @title The Witnet Request Board Reporter interface.\r\n/// @author The Witnet Foundation.\r\ninterface IWitnetOracleReporter {\r\n\r\n /// @notice Estimates the actual earnings in WEI, that a reporter would get by reporting result to given query,\r\n /// @notice based on the gas price of the calling transaction. Data requesters should consider upgrading the reward on \r\n /// @notice queries providing no actual earnings.\r\n function estimateReportEarnings(\r\n uint256[] calldata witnetQueryIds, \r\n bytes calldata reportTxMsgData,\r\n uint256 reportTxGasPrice,\r\n uint256 nanoWitPrice\r\n ) external view returns (uint256, uint256);\r\n\r\n /// @notice Retrieves the Witnet Data Request bytecodes and SLAs of previously posted queries.\r\n /// @dev Returns empty buffer if the query does not exist.\r\n /// @param queryIds Query identifiers.\r\n function extractWitnetDataRequests(uint256[] calldata queryIds) \r\n external view returns (bytes[] memory drBytecodes);\r\n\r\n /// @notice Reports the Witnet-provided result to a previously posted request. \r\n /// @dev Will assume `block.timestamp` as the timestamp at which the request was solved.\r\n /// @dev Fails if:\r\n /// @dev - the `_witnetQueryId` is not in 'Posted' status.\r\n /// @dev - provided `_tallyHash` is zero;\r\n /// @dev - length of provided `_result` is zero.\r\n /// @param witnetQueryId The unique identifier of the data request.\r\n /// @param witnetQueryResultTallyHash The hash of the corresponding data request transaction in Witnet.\r\n /// @param witnetQueryResultCborBytes The result itself as bytes.\r\n function reportResult(\r\n uint256 witnetQueryId,\r\n bytes32 witnetQueryResultTallyHash,\r\n bytes calldata witnetQueryResultCborBytes\r\n ) external returns (uint256);\r\n\r\n /// @notice Reports the Witnet-provided result to a previously posted request.\r\n /// @dev Fails if:\r\n /// @dev - called from unauthorized address;\r\n /// @dev - the `_witnetQueryId` is not in 'Posted' status.\r\n /// @dev - provided `_tallyHash` is zero;\r\n /// @dev - length of provided `_result` is zero.\r\n /// @param witnetQueryId The unique query identifier\r\n /// @param witnetQueryResultTimestamp The timestamp of the solving tally transaction in Witnet.\r\n /// @param witnetQueryResultTallyHash The hash of the corresponding data request transaction in Witnet.\r\n /// @param witnetQueryResultCborBytes The result itself as bytes.\r\n function reportResult(\r\n uint256 witnetQueryId,\r\n uint32 witnetQueryResultTimestamp,\r\n bytes32 witnetQueryResultTallyHash,\r\n bytes calldata witnetQueryResultCborBytes\r\n ) external returns (uint256);\r\n\r\n /// @notice Reports Witnet-provided results to multiple requests within a single EVM tx.\r\n /// @notice Emits either a WitnetQueryResponse* or a BatchReportError event per batched report.\r\n /// @dev Fails only if called from unauthorized address.\r\n /// @param _batchResults Array of BatchResult structs, every one containing:\r\n /// - unique query identifier;\r\n /// - timestamp of the solving tally txs in Witnet. If zero is provided, EVM-timestamp will be used instead;\r\n /// - hash of the corresponding data request tx at the Witnet side-chain level;\r\n /// - data request result in raw bytes.\r\n function reportResultBatch(BatchResult[] calldata _batchResults) external returns (uint256);\r\n \r\n struct BatchResult {\r\n uint256 queryId;\r\n uint32 queryResultTimestamp;\r\n bytes32 queryResultTallyHash;\r\n bytes queryResultCborBytes;\r\n }\r\n\r\n event BatchReportError(uint256 queryId, string reason);\r\n}\r\n", "sourcePath": "C:\\Users\\guill\\github\\witnet\\witnet-solidity-bridge\\contracts\\interfaces\\IWitnetOracleReporter.sol", "ast": { "absolutePath": "project:/contracts/interfaces/IWitnetOracleReporter.sol", "exportedSymbols": { "IWitnetOracleReporter": [ 13398 ], "Witnet": [ 17557 ], "WitnetBuffer": [ 19191 ], "WitnetCBOR": [ 20734 ], "WitnetV2": [ 23640 ] }, "id": 13399, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 13317, "literals": [ "solidity", ">=", "0.7", ".0", "<", "0.9", ".0" ], "nodeType": "PragmaDirective", "src": "35:31:51" }, { "absolutePath": "project:/contracts/libs/WitnetV2.sol", "file": "../libs/WitnetV2.sol", "id": 13318, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 13399, "sourceUnit": 23641, "src": "70:30:51", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [], "canonicalName": "IWitnetOracleReporter", "contractDependencies": [], "contractKind": "interface", "documentation": { "id": 13319, "nodeType": "StructuredDocumentation", "src": "104:93:51", "text": "@title The Witnet Request Board Reporter interface.\n @author The Witnet Foundation." }, "fullyImplemented": false, "id": 13398, "linearizedBaseContracts": [ 13398 ], "name": "IWitnetOracleReporter", "nameLocation": "207:21:51", "nodeType": "ContractDefinition", "nodes": [ { "documentation": { "id": 13320, "nodeType": "StructuredDocumentation", "src": "238:291:51", "text": "@notice Estimates the actual earnings in WEI, that a reporter would get by reporting result to given query,\n @notice based on the gas price of the calling transaction. Data requesters should consider upgrading the reward on \n @notice queries providing no actual earnings." }, "functionSelector": "93d5185c", "id": 13336, "implemented": false, "kind": "function", "modifiers": [], "name": "estimateReportEarnings", "nameLocation": "544:22:51", "nodeType": "FunctionDefinition", "parameters": { "id": 13330, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13323, "mutability": "mutable", "name": "witnetQueryIds", "nameLocation": "600:14:51", "nodeType": "VariableDeclaration", "scope": 13336, "src": "581:33:51", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 13321, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "581:7:51", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13322, "nodeType": "ArrayTypeName", "src": "581:9:51", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "visibility": "internal" }, { "constant": false, "id": 13325, "mutability": "mutable", "name": "reportTxMsgData", "nameLocation": "645:15:51", "nodeType": "VariableDeclaration", "scope": 13336, "src": "630:30:51", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 13324, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "630:5:51", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 13327, "mutability": "mutable", "name": "reportTxGasPrice", "nameLocation": "683:16:51", "nodeType": "VariableDeclaration", "scope": 13336, "src": "675:24:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13326, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "675:7:51", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 13329, "mutability": "mutable", "name": "nanoWitPrice", "nameLocation": "722:12:51", "nodeType": "VariableDeclaration", "scope": 13336, "src": "714:20:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13328, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "714:7:51", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "566:179:51" }, "returnParameters": { "id": 13335, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13332, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 13336, "src": "769:7:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13331, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "769:7:51", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 13334, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 13336, "src": "778:7:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13333, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "778:7:51", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "768:18:51" }, "scope": 13398, "src": "535:252:51", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "documentation": { "id": 13337, "nodeType": "StructuredDocumentation", "src": "795:202:51", "text": "@notice Retrieves the Witnet Data Request bytecodes and SLAs of previously posted queries.\n @dev Returns empty buffer if the query does not exist.\n @param queryIds Query identifiers." }, "functionSelector": "45ea6c17", "id": 13346, "implemented": false, "kind": "function", "modifiers": [], "name": "extractWitnetDataRequests", "nameLocation": "1012:25:51", "nodeType": "FunctionDefinition", "parameters": { "id": 13341, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13340, "mutability": "mutable", "name": "queryIds", "nameLocation": "1057:8:51", "nodeType": "VariableDeclaration", "scope": 13346, "src": "1038:27:51", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 13338, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1038:7:51", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13339, "nodeType": "ArrayTypeName", "src": "1038:9:51", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "visibility": "internal" } ], "src": "1037:29:51" }, "returnParameters": { "id": 13345, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13344, "mutability": "mutable", "name": "drBytecodes", "nameLocation": "1115:11:51", "nodeType": "VariableDeclaration", "scope": 13346, "src": "1100:26:51", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes[]" }, "typeName": { "baseType": { "id": 13342, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1100:5:51", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "id": 13343, "nodeType": "ArrayTypeName", "src": "1100:7:51", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]" } }, "visibility": "internal" } ], "src": "1099:28:51" }, "scope": 13398, "src": "1003:125:51", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "documentation": { "id": 13347, "nodeType": "StructuredDocumentation", "src": "1136:615:51", "text": "@notice Reports the Witnet-provided result to a previously posted request. \n @dev Will assume `block.timestamp` as the timestamp at which the request was solved.\n @dev Fails if:\n @dev - the `_witnetQueryId` is not in 'Posted' status.\n @dev - provided `_tallyHash` is zero;\n @dev - length of provided `_result` is zero.\n @param witnetQueryId The unique identifier of the data request.\n @param witnetQueryResultTallyHash The hash of the corresponding data request transaction in Witnet.\n @param witnetQueryResultCborBytes The result itself as bytes." }, "functionSelector": "6280bce8", "id": 13358, "implemented": false, "kind": "function", "modifiers": [], "name": "reportResult", "nameLocation": "1766:12:51", "nodeType": "FunctionDefinition", "parameters": { "id": 13354, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13349, "mutability": "mutable", "name": "witnetQueryId", "nameLocation": "1801:13:51", "nodeType": "VariableDeclaration", "scope": 13358, "src": "1793:21:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13348, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1793:7:51", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 13351, "mutability": "mutable", "name": "witnetQueryResultTallyHash", "nameLocation": "1837:26:51", "nodeType": "VariableDeclaration", "scope": 13358, "src": "1829:34:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 13350, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1829:7:51", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" }, { "constant": false, "id": 13353, "mutability": "mutable", "name": "witnetQueryResultCborBytes", "nameLocation": "1893:26:51", "nodeType": "VariableDeclaration", "scope": 13358, "src": "1878:41:51", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 13352, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1878:5:51", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "1778:152:51" }, "returnParameters": { "id": 13357, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13356, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 13358, "src": "1949:7:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13355, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1949:7:51", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "1948:9:51" }, "scope": 13398, "src": "1757:201:51", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "documentation": { "id": 13359, "nodeType": "StructuredDocumentation", "src": "1966:656:51", "text": "@notice Reports the Witnet-provided result to a previously posted request.\n @dev Fails if:\n @dev - called from unauthorized address;\n @dev - the `_witnetQueryId` is not in 'Posted' status.\n @dev - provided `_tallyHash` is zero;\n @dev - length of provided `_result` is zero.\n @param witnetQueryId The unique query identifier\n @param witnetQueryResultTimestamp The timestamp of the solving tally transaction in Witnet.\n @param witnetQueryResultTallyHash The hash of the corresponding data request transaction in Witnet.\n @param witnetQueryResultCborBytes The result itself as bytes." }, "functionSelector": "b207e730", "id": 13372, "implemented": false, "kind": "function", "modifiers": [], "name": "reportResult", "nameLocation": "2637:12:51", "nodeType": "FunctionDefinition", "parameters": { "id": 13368, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13361, "mutability": "mutable", "name": "witnetQueryId", "nameLocation": "2672:13:51", "nodeType": "VariableDeclaration", "scope": 13372, "src": "2664:21:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13360, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2664:7:51", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 13363, "mutability": "mutable", "name": "witnetQueryResultTimestamp", "nameLocation": "2708:26:51", "nodeType": "VariableDeclaration", "scope": 13372, "src": "2700:34:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 13362, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "2700:6:51", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 13365, "mutability": "mutable", "name": "witnetQueryResultTallyHash", "nameLocation": "2757:26:51", "nodeType": "VariableDeclaration", "scope": 13372, "src": "2749:34:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 13364, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2749:7:51", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" }, { "constant": false, "id": 13367, "mutability": "mutable", "name": "witnetQueryResultCborBytes", "nameLocation": "2813:26:51", "nodeType": "VariableDeclaration", "scope": 13372, "src": "2798:41:51", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 13366, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2798:5:51", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "2649:201:51" }, "returnParameters": { "id": 13371, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13370, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 13372, "src": "2869:7:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13369, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2869:7:51", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "2868:9:51" }, "scope": 13398, "src": "2628:250:51", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "documentation": { "id": 13373, "nodeType": "StructuredDocumentation", "src": "2886:645:51", "text": "@notice Reports Witnet-provided results to multiple requests within a single EVM tx.\n @notice Emits either a WitnetQueryResponse* or a BatchReportError event per batched report.\n @dev Fails only if called from unauthorized address.\n @param _batchResults Array of BatchResult structs, every one containing:\n - unique query identifier;\n - timestamp of the solving tally txs in Witnet. If zero is provided, EVM-timestamp will be used instead;\n - hash of the corresponding data request tx at the Witnet side-chain level;\n - data request result in raw bytes." }, "functionSelector": "06eb2c42", "id": 13382, "implemented": false, "kind": "function", "modifiers": [], "name": "reportResultBatch", "nameLocation": "3546:17:51", "nodeType": "FunctionDefinition", "parameters": { "id": 13378, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13377, "mutability": "mutable", "name": "_batchResults", "nameLocation": "3587:13:51", "nodeType": "VariableDeclaration", "scope": 13382, "src": "3564:36:51", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_BatchResult_$13391_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct IWitnetOracleReporter.BatchResult[]" }, "typeName": { "baseType": { "id": 13375, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 13374, "name": "BatchResult", "nameLocations": [ "3564:11:51" ], "nodeType": "IdentifierPath", "referencedDeclaration": 13391, "src": "3564:11:51" }, "referencedDeclaration": 13391, "src": "3564:11:51", "typeDescriptions": { "typeIdentifier": "t_struct$_BatchResult_$13391_storage_ptr", "typeString": "struct IWitnetOracleReporter.BatchResult" } }, "id": 13376, "nodeType": "ArrayTypeName", "src": "3564:13:51", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_BatchResult_$13391_storage_$dyn_storage_ptr", "typeString": "struct IWitnetOracleReporter.BatchResult[]" } }, "visibility": "internal" } ], "src": "3563:38:51" }, "returnParameters": { "id": 13381, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13380, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 13382, "src": "3620:7:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13379, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3620:7:51", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "3619:9:51" }, "scope": 13398, "src": "3537:92:51", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "canonicalName": "IWitnetOracleReporter.BatchResult", "id": 13391, "members": [ { "constant": false, "id": 13384, "mutability": "mutable", "name": "queryId", "nameLocation": "3691:7:51", "nodeType": "VariableDeclaration", "scope": 13391, "src": "3683:15:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13383, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3683:7:51", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 13386, "mutability": "mutable", "name": "queryResultTimestamp", "nameLocation": "3721:20:51", "nodeType": "VariableDeclaration", "scope": 13391, "src": "3713:28:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 13385, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "3713:6:51", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 13388, "mutability": "mutable", "name": "queryResultTallyHash", "nameLocation": "3764:20:51", "nodeType": "VariableDeclaration", "scope": 13391, "src": "3756:28:51", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeStrin