Copy pragma solidity ^0.8.0;
interface Morpheus {
function getFeed(
uint256 feedID
)
external
view
returns (
uint256 value,
uint256 decimals,
uint256 timestamp,
string memory valStr
);
function requestFeeds(
string[] calldata APIendpoint,
string[] calldata APIendpointPath,
uint256[] calldata decimals,
uint256[] calldata bounties
) external payable returns (uint256[] memory feeds);
}
contract Jury {
Morpheus public morpheus;
mapping(uint256=> string ) public ID;
uint oracleFee = 100000000000000;
uint nID;
constructor() {
morpheus = Morpheus(0x0000000000071821e8033345A7Be174647bE0706);
}
function play(string memory question) public{
require(msg.value>=oracleFee);
request(question);
}
function request(string memory question) internal {
string[] memory apiEndpoint = new string[](1);
apiEndpoint[0] = "Jury";
string[] memory apiEndpointPath = new string[](1);
apiEndpointPath[0] = question;
uint256[] memory decimals = new uint256[](1);
decimals[0] = 0;
uint256[] memory bounties = new uint256[](1);
bounties[0] = oracleFee ;
uint256[] memory feeds = morpheus.requestFeeds{value: oracleFee }(
apiEndpoint,
apiEndpointPath,
decimals,
bounties
);
ID[nID]= feeds[0];
nID++;
}
function myReply() public returns (
string memory valStr
) {
(, , , string memory Value) = morpheus.getFeed(vrfID);
require(Value != 0, "Oracle not ready");
return (valStr);
}
}