UNPKG

witnet-solidity-bridge

Version:

Witnet Solidity Bridge contracts for EVM-compatible chains

1,043 lines 62.9 kB
{ "contractName": "IWitOracleQueriableTrustableReporter", "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": "queryIds", "type": "uint256[]" }, { "internalType": "bytes", "name": "evmReportTxMsgData", "type": "bytes" }, { "internalType": "uint256", "name": "evmReportTxGasPrice", "type": "uint256" }, { "internalType": "uint256", "name": "witEthPrice9", "type": "uint256" } ], "name": "estimateReportEarnings", "outputs": [ { "internalType": "uint256", "name": "evmRevenues", "type": "uint256" }, { "internalType": "uint256", "name": "evmExpenses", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "Witnet.QueryId[]", "name": "queryIds", "type": "uint64[]" } ], "name": "extractRadonBytecodes", "outputs": [ { "internalType": "bytes[]", "name": "drBytecodes", "type": "bytes[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "Witnet.QueryId", "name": "queryId", "type": "uint64" }, { "internalType": "Witnet.Timestamp", "name": "resultTimestamp", "type": "uint64" }, { "internalType": "Witnet.TransactionHash", "name": "witDrTxHash", "type": "bytes32" }, { "internalType": "bytes", "name": "resultCborBytes", "type": "bytes" } ], "name": "reportResult", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "Witnet.QueryId", "name": "queryId", "type": "uint64" }, { "internalType": "Witnet.TransactionHash", "name": "witDrTxHash", "type": "bytes32" }, { "internalType": "bytes", "name": "resultCborBytes", "type": "bytes" } ], "name": "reportResult", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "Witnet.QueryId", "name": "queryId", "type": "uint64" }, { "internalType": "Witnet.Timestamp", "name": "resultTimestamp", "type": "uint64" }, { "internalType": "Witnet.TransactionHash", "name": "drTxHash", "type": "bytes32" }, { "internalType": "bytes", "name": "resultCborBytes", "type": "bytes" } ], "internalType": "struct IWitOracleQueriableTrustableReporter.BatchResult[]", "name": "_batchResults", "type": "tuple[]" } ], "name": "reportResultBatch", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"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\":\"queryIds\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"evmReportTxMsgData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"evmReportTxGasPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"witEthPrice9\",\"type\":\"uint256\"}],\"name\":\"estimateReportEarnings\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"evmRevenues\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"evmExpenses\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Witnet.QueryId[]\",\"name\":\"queryIds\",\"type\":\"uint64[]\"}],\"name\":\"extractRadonBytecodes\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"drBytecodes\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Witnet.QueryId\",\"name\":\"queryId\",\"type\":\"uint64\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"resultTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"witDrTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"}],\"name\":\"reportResult\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Witnet.QueryId\",\"name\":\"queryId\",\"type\":\"uint64\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"witDrTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"}],\"name\":\"reportResult\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Witnet.QueryId\",\"name\":\"queryId\",\"type\":\"uint64\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"resultTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"drTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"}],\"internalType\":\"struct IWitOracleQueriableTrustableReporter.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\":{\"extractRadonBytecodes(uint64[])\":{\"details\":\"Returns empty buffer if the query does not exist.\",\"params\":{\"queryIds\":\"Query identifiers.\"}},\"reportResult(uint64,bytes32,bytes)\":{\"details\":\"Will assume `block.timestamp` as the timestamp at which the request was solved.Fails if:- the `_queryId` is not in 'Posted' status.- provided `_tallyHash` is zero;- length of provided `_result` is zero.\",\"params\":{\"queryId\":\"The unique identifier of the data request.\",\"resultCborBytes\":\"The result itself as bytes.\",\"witDrTxHash\":\"The hash of the corresponding data request transaction in Witnet.\"}},\"reportResult(uint64,uint64,bytes32,bytes)\":{\"details\":\"Fails if:- called from unauthorized address;- the `_queryId` is not in 'Posted' status.- provided `_tallyHash` is zero;- length of provided `_result` is zero.\",\"params\":{\"queryId\":\"The unique query identifier\",\"resultCborBytes\":\"The result itself as bytes.\",\"resultTimestamp\":\"The timestamp of the solving tally transaction in Witnet.\",\"witDrTxHash\":\"The hash of the corresponding data request transaction in Witnet.\"}},\"reportResultBatch((uint64,uint64,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.\"},\"extractRadonBytecodes(uint64[])\":{\"notice\":\"Retrieves the Witnet Data Request bytecodes of previously posted queries.\"},\"reportResult(uint64,bytes32,bytes)\":{\"notice\":\"Reports the Witnet-provided result to a previously posted request. \"},\"reportResult(uint64,uint64,bytes32,bytes)\":{\"notice\":\"Reports the Witnet-provided result to a previously posted request.\"},\"reportResultBatch((uint64,uint64,bytes32,bytes)[])\":{\"notice\":\"Reports Witnet-provided results to multiple requests within a single EVM tx.Emits either a WitOracleQueryReport* or a BatchReportError event per batched report.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/interfaces/IWitOracleQueriableTrustableReporter.sol\":\"IWitOracleQueriableTrustableReporter\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/interfaces/IWitOracleQueriableTrustableReporter.sol\":{\"keccak256\":\"0x043a719845d75dccc3c7c046fdd214bb252ab2b85400fbd139ed5cea9469becc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b1be7cbf990ff4d383b1c0695626af794442f9a48f02e13435793c4316ff011\",\"dweb:/ipfs/QmX3Lq17FMsN2T9K4fAYg6CRTYjwHd6hT1XKjEA2T7QeM5\"]},\"project:/contracts/libs/Bech32.sol\":{\"keccak256\":\"0x14618323a0efe7586c20906a2e9cee7ad63baa976ff231c57f7f2d7d3707fb8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a19f05fe84047a7a6d3d6fc39972b432e6e536aa70472386a9d7a6d9aab64a64\",\"dweb:/ipfs/QmcHwUY66yjiotRH4Q3kbRvSzcHyLQ1yHL3KbtQKiMhtZE\"]},\"project:/contracts/libs/Secp256k1.sol\":{\"keccak256\":\"0xbe686002da5004ff39dd70709f3820eba2afe9323ae9cb894009c161e4b1a666\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18fab91775216de0707cea9ad285b10be09127461a13432fea358bf9cb2a0c2e\",\"dweb:/ipfs/QmeRUGsgstnM4hxM9hpkBf3L6cE5btirEaowcMxmuw3utj\"]},\"project:/contracts/libs/Witnet.sol\":{\"keccak256\":\"0x1d446c3e534e40e676d1763bfb2897fadfac8afed904ab757843d7d6770b0a6c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://338fb1073f17d64e8d31bfe492d9475ce906788ee08e6489ce30413f91dc1328\",\"dweb:/ipfs/QmPe5QX2AGTnQFjse1Xttq4ZYWwYAiXoySb5VUui3PqPhk\"]},\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0x8e07aebe2954ab3e6f2d8eceedb12db7cf915c1f3e8630f4fa9999cecb1c78ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed6c54cc901183d61546e8fd15bd5ea8ef238ebc915642946071d435dd7481ea\",\"dweb:/ipfs/Qmcaqta7YjUSBbBUGqoh44bsCS6UqqoyHjBuz4qnKBShXM\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xd99308373575cc10fb7f2ceb0f6a8625f3911275c1fa27811fae498d98d03d97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4909a999d7b660a2dc54ca957b6eccfa523e2765fc4d6a2574dee7d5cd67b43\",\"dweb:/ipfs/QmWGQT4KDcfSFe1hcHVoWx6E4PhYMaod5iLpJCWBEeShzh\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, "generatedSources": [], "deployedGeneratedSources": [], "sourceMap": "", "deployedSourceMap": "", "source": "// SPDX-License-Identifier: MIT\r\n\r\npragma solidity >=0.8.0 <0.9.0;\r\n\r\nimport \"../libs/Witnet.sol\";\r\n\r\n/// @title The Witnet Request Board Reporter interface.\r\n/// @author The Witnet Foundation.\r\ninterface IWitOracleQueriableTrustableReporter {\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 queryIds, \r\n bytes calldata evmReportTxMsgData,\r\n uint256 evmReportTxGasPrice,\r\n uint256 witEthPrice9\r\n ) external view returns (uint256 evmRevenues, uint256 evmExpenses);\r\n\r\n /// @notice Retrieves the Witnet Data Request bytecodes 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 extractRadonBytecodes(Witnet.QueryId[] 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 `_queryId` is not in 'Posted' status.\r\n /// @dev - provided `_tallyHash` is zero;\r\n /// @dev - length of provided `_result` is zero.\r\n /// @param queryId The unique identifier of the data request.\r\n /// @param witDrTxHash The hash of the corresponding data request transaction in Witnet.\r\n /// @param resultCborBytes The result itself as bytes.\r\n function reportResult(\r\n Witnet.QueryId queryId,\r\n Witnet.TransactionHash witDrTxHash,\r\n bytes calldata resultCborBytes\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 `_queryId` is not in 'Posted' status.\r\n /// @dev - provided `_tallyHash` is zero;\r\n /// @dev - length of provided `_result` is zero.\r\n /// @param queryId The unique query identifier\r\n /// @param resultTimestamp The timestamp of the solving tally transaction in Witnet.\r\n /// @param witDrTxHash The hash of the corresponding data request transaction in Witnet.\r\n /// @param resultCborBytes The result itself as bytes.\r\n function reportResult(\r\n Witnet.QueryId queryId,\r\n Witnet.Timestamp resultTimestamp,\r\n Witnet.TransactionHash witDrTxHash,\r\n bytes calldata resultCborBytes\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 WitOracleQueryReport* 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 Witnet.QueryId queryId;\r\n Witnet.Timestamp resultTimestamp;\r\n Witnet.TransactionHash drTxHash;\r\n bytes resultCborBytes;\r\n }\r\n\r\n event BatchReportError(uint256 queryId, string reason);\r\n}\r\n", "sourcePath": "C:\\Users\\guill\\github\\guidiaz\\witnet-solidity-bridge\\contracts\\interfaces\\IWitOracleQueriableTrustableReporter.sol", "ast": { "absolutePath": "project:/contracts/interfaces/IWitOracleQueriableTrustableReporter.sol", "exportedSymbols": { "Bech32": [ 31372 ], "IWitOracleQueriableTrustableReporter": [ 27056 ], "Secp256k1": [ 32535 ], "Witnet": [ 40741 ], "WitnetBuffer": [ 42631 ], "WitnetCBOR": [ 44174 ] }, "id": 27057, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 26966, "literals": [ "solidity", ">=", "0.8", ".0", "<", "0.9", ".0" ], "nodeType": "PragmaDirective", "src": "35:31:71" }, { "absolutePath": "project:/contracts/libs/Witnet.sol", "file": "../libs/Witnet.sol", "id": 26967, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 27057, "sourceUnit": 40742, "src": "70:28:71", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [], "canonicalName": "IWitOracleQueriableTrustableReporter", "contractDependencies": [], "contractKind": "interface", "documentation": { "id": 26968, "nodeType": "StructuredDocumentation", "src": "102:93:71", "text": "@title The Witnet Request Board Reporter interface.\n @author The Witnet Foundation." }, "fullyImplemented": false, "id": 27056, "linearizedBaseContracts": [ 27056 ], "name": "IWitOracleQueriableTrustableReporter", "nameLocation": "205:36:71", "nodeType": "ContractDefinition", "nodes": [ { "documentation": { "id": 26969, "nodeType": "StructuredDocumentation", "src": "251:291:71", "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": 26985, "implemented": false, "kind": "function", "modifiers": [], "name": "estimateReportEarnings", "nameLocation": "557:22:71", "nodeType": "FunctionDefinition", "parameters": { "id": 26979, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26972, "mutability": "mutable", "name": "queryIds", "nameLocation": "613:8:71", "nodeType": "VariableDeclaration", "scope": 26985, "src": "594:27:71", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 26970, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "594:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 26971, "nodeType": "ArrayTypeName", "src": "594:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "visibility": "internal" }, { "constant": false, "id": 26974, "mutability": "mutable", "name": "evmReportTxMsgData", "nameLocation": "652:18:71", "nodeType": "VariableDeclaration", "scope": 26985, "src": "637:33:71", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 26973, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "637:5:71", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 26976, "mutability": "mutable", "name": "evmReportTxGasPrice", "nameLocation": "693:19:71", "nodeType": "VariableDeclaration", "scope": 26985, "src": "685:27:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26975, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "685:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 26978, "mutability": "mutable", "name": "witEthPrice9", "nameLocation": "735:12:71", "nodeType": "VariableDeclaration", "scope": 26985, "src": "727:20:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26977, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "727:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "579:179:71" }, "returnParameters": { "id": 26984, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26981, "mutability": "mutable", "name": "evmRevenues", "nameLocation": "790:11:71", "nodeType": "VariableDeclaration", "scope": 26985, "src": "782:19:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26980, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "782:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 26983, "mutability": "mutable", "name": "evmExpenses", "nameLocation": "811:11:71", "nodeType": "VariableDeclaration", "scope": 26985, "src": "803:19:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26982, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "803:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "781:42:71" }, "scope": 27056, "src": "548:276:71", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "documentation": { "id": 26986, "nodeType": "StructuredDocumentation", "src": "832:193:71", "text": "@notice Retrieves the Witnet Data Request bytecodes of previously posted queries.\n @dev Returns empty buffer if the query does not exist.\n @param queryIds Query identifiers." }, "functionSelector": "5304bba2", "id": 26996, "implemented": false, "kind": "function", "modifiers": [], "name": "extractRadonBytecodes", "nameLocation": "1040:21:71", "nodeType": "FunctionDefinition", "parameters": { "id": 26991, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26990, "mutability": "mutable", "name": "queryIds", "nameLocation": "1088:8:71", "nodeType": "VariableDeclaration", "scope": 26996, "src": "1062:34:71", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_array$_t_userDefinedValueType$_QueryId_$37151_$dyn_calldata_ptr", "typeString": "Witnet.QueryId[]" }, "typeName": { "baseType": { "id": 26988, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 26987, "name": "Witnet.QueryId", "nameLocations": [ "1062:6:71", "1069:7:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 37151, "src": "1062:14:71" }, "referencedDeclaration": 37151, "src": "1062:14:71", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151", "typeString": "Witnet.QueryId" } }, "id": 26989, "nodeType": "ArrayTypeName", "src": "1062:16:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_userDefinedValueType$_QueryId_$37151_$dyn_storage_ptr", "typeString": "Witnet.QueryId[]" } }, "visibility": "internal" } ], "src": "1061:36:71" }, "returnParameters": { "id": 26995, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26994, "mutability": "mutable", "name": "drBytecodes", "nameLocation": "1146:11:71", "nodeType": "VariableDeclaration", "scope": 26996, "src": "1131:26:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes[]" }, "typeName": { "baseType": { "id": 26992, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1131:5:71", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "id": 26993, "nodeType": "ArrayTypeName", "src": "1131:7:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]" } }, "visibility": "internal" } ], "src": "1130:28:71" }, "scope": 27056, "src": "1031:128:71", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "documentation": { "id": 26997, "nodeType": "StructuredDocumentation", "src": "1167:577:71", "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 `_queryId` is not in 'Posted' status.\n @dev - provided `_tallyHash` is zero;\n @dev - length of provided `_result` is zero.\n @param queryId The unique identifier of the data request.\n @param witDrTxHash The hash of the corresponding data request transaction in Witnet.\n @param resultCborBytes The result itself as bytes." }, "functionSelector": "76d0e357", "id": 27010, "implemented": false, "kind": "function", "modifiers": [], "name": "reportResult", "nameLocation": "1759:12:71", "nodeType": "FunctionDefinition", "parameters": { "id": 27006, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 27000, "mutability": "mutable", "name": "queryId", "nameLocation": "1801:7:71", "nodeType": "VariableDeclaration", "scope": 27010, "src": "1786:22:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151", "typeString": "Witnet.QueryId" }, "typeName": { "id": 26999, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 26998, "name": "Witnet.QueryId", "nameLocations": [ "1786:6:71", "1793:7:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 37151, "src": "1786:14:71" }, "referencedDeclaration": 37151, "src": "1786:14:71", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151", "typeString": "Witnet.QueryId" } }, "visibility": "internal" }, { "constant": false, "id": 27003, "mutability": "mutable", "name": "witDrTxHash", "nameLocation": "1846:11:71", "nodeType": "VariableDeclaration", "scope": 27010, "src": "1823:34:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159", "typeString": "Witnet.TransactionHash" }, "typeName": { "id": 27002, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 27001, "name": "Witnet.TransactionHash", "nameLocations": [ "1823:6:71", "1830:15:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 37159, "src": "1823:22:71" }, "referencedDeclaration": 37159, "src": "1823:22:71", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159", "typeString": "Witnet.TransactionHash" } }, "visibility": "internal" }, { "constant": false, "id": 27005, "mutability": "mutable", "name": "resultCborBytes", "nameLocation": "1887:15:71", "nodeType": "VariableDeclaration", "scope": 27010, "src": "1872:30:71", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 27004, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1872:5:71", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "1771:142:71" }, "returnParameters": { "id": 27009, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 27008, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 27010, "src": "1932:7:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 27007, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1932:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "1931:9:71" }, "scope": 27056, "src": "1750:191:71", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "documentation": { "id": 27011, "nodeType": "StructuredDocumentation", "src": "1949:607:71", "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 `_queryId` is not in 'Posted' status.\n @dev - provided `_tallyHash` is zero;\n @dev - length of provided `_result` is zero.\n @param queryId The unique query identifier\n @param resultTimestamp The timestamp of the solving tally transaction in Witnet.\n @param witDrTxHash The hash of the corresponding data request transaction in Witnet.\n @param resultCborBytes The result itself as bytes." }, "functionSelector": "1aea970b", "id": 27027, "implemented": false, "kind": "function", "modifiers": [], "name": "reportResult", "nameLocation": "2571:12:71", "nodeType": "FunctionDefinition", "parameters": { "id": 27023, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 27014, "mutability": "mutable", "name": "queryId", "nameLocation": "2613:7:71", "nodeType": "VariableDeclaration", "scope": 27027, "src": "2598:22:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151", "typeString": "Witnet.QueryId" }, "typeName": { "id": 27013, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 27012, "name": "Witnet.QueryId", "nameLocations": [ "2598:6:71", "2605:7:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 37151, "src": "2598:14:71" }, "referencedDeclaration": 37151, "src": "2598:14:71", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151", "typeString": "Witnet.QueryId" } }, "visibility": "internal" }, { "constant": false, "id": 27017, "mutability": "mutable", "name": "resultTimestamp", "nameLocation": "2652:15:71", "nodeType": "VariableDeclaration", "scope": 27027, "src": "2635:32:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157", "typeString": "Witnet.Timestamp" }, "typeName": { "id": 27016, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 27015, "name": "Witnet.Timestamp", "nameLocations": [ "2635:6:71", "2642:9:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 37157, "src": "2635:16:71" }, "referencedDeclaration": 37157, "src": "2635:16:71", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157", "typeString": "Witnet.Timestamp" } }, "visibility": "internal" }, { "constant": false, "id": 27020, "mutability": "mutable", "name": "witDrTxHash", "nameLocation": "2705:11:71", "nodeType": "VariableDeclaration", "scope": 27027, "src": "2682:34:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159", "typeString": "Witnet.TransactionHash" }, "typeName": { "id": 27019, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 27018, "name": "Witnet.TransactionHash", "nameLocations": [ "2682:6:71", "2689:15:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 37159, "src": "2682:22:71" }, "referencedDeclaration": 37159, "src": "2682:22:71", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159", "typeString": "Witnet.TransactionHash" } }, "visibility": "internal" }, { "constant": false, "id": 27022, "mutability": "mutable", "name": "resultCborBytes", "nameLocation": "2746:15:71", "nodeType": "VariableDeclaration", "scope": 27027, "src": "2731:30:71", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 27021, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2731:5:71", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "2583:189:71" }, "returnParameters": { "id": 27026, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 27025, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 27027, "src": "2791:7:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 27024, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2791:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "2790:9:71" }, "scope": 27056, "src": "2562:238:71", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "documentation": { "id": 27028, "nodeType": "StructuredDocumentation", "src": "2808:646:71", "text": "@notice Reports Witnet-provided results to multiple requests within a single EVM tx.\n @notice Emits either a WitOracleQueryReport* 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": "4e6c13a1", "id": 27037, "implemented": false, "kind": "function", "modifiers": [], "name": "reportResultBatch", "nameLocation": "3469:17:71", "nodeType": "FunctionDefinition", "parameters": { "id": 27033, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 27032, "mutability": "mutable", "name": "_batchResults", "nameLocation": "3510:13:71", "nodeType": "VariableDeclaration", "scope": 27037, "src": "3487:36:71", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_BatchResult_$27049_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct IWitOracleQueriableTrustableReporter.BatchResult[]" }, "typeName": { "baseType": { "id": 27030, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 27029, "name": "BatchResult", "nameLocations": [ "3487:11:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 27049, "src": "3487:11:71" }, "referencedDeclaration": 27049, "src": "3487:11:71", "typeDescriptions": { "typeIdentifier": "t_struct$_BatchResult_$27049_storage_ptr", "typeString": "struct IWitOracleQueriableTrustableReporter.BatchResult" } }, "id": 27031, "nodeType": "ArrayTypeName", "src": "3487:13:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_BatchResult_$27049_storage_$dyn_storage_ptr", "typeString": "struct IWitOracleQueriableTrustableReporter.BatchResult[]" } }, "visibility": "internal" } ], "src": "3486:38:71" }, "returnParameters": { "id": 27036, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 27035, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 27037, "src": "3543:7:71", "stateVariable": false, "storageLocation": "defaul