// SPDX-License-Identifier: MIT
pragma solidity 0.8.3;
/**
@author Tellor Inc.
@title QueryDataStorage
@dev This contract is used for storing query data
*/
contract QueryDataStorage {
mapping(bytes32 => bytes) public queryData; // queryId => queryData
event QueryDataStored(bytes32 _queryId);
/**
* @dev Stores query data in a mapping from queryId
* @param _queryData The query data
*/
function storeData(bytes memory _queryData) external {
bytes32 _queryId = keccak256(_queryData);
if (queryData[_queryId].length == 0) {
queryData[_queryId] = _queryData;
emit QueryDataStored(_queryId);
}
}
/**
* @dev Retrieves query data
* @param _queryId Unique identifier for the query
* @return _queryData Stored query data
*/
function getQueryData(bytes32 _queryId)
public
view
returns (bytes memory _queryData)
{
return queryData[_queryId];
}
}
{
"compilationTarget": {
"autopay/contracts/QueryDataStorage.sol": "QueryDataStorage"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 300
},
"remappings": []
}
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"_queryId","type":"bytes32"}],"name":"QueryDataStored","type":"event"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"}],"name":"getQueryData","outputs":[{"internalType":"bytes","name":"_queryData","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"queryData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_queryData","type":"bytes"}],"name":"storeData","outputs":[],"stateMutability":"nonpayable","type":"function"}]