witnet-solidity-bridge
Version:
Witnet Solidity Bridge contracts for EVM-compatible chains
1,071 lines • 58 kB
JSON
{
"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