Skip to content

Instantly share code, notes, and snippets.

@bet02024
Created June 17, 2019 02:20
Show Gist options
  • Save bet02024/f5416f65ed2e3ebebeffc22ff5845e51 to your computer and use it in GitHub Desktop.
Save bet02024/f5416f65ed2e3ebebeffc22ff5845e51 to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.4.21+commit.dfe3193c.js&optimize=false&gist=
pragma solidity ^0.4.21;
contract CovoirOracle {
function query(bytes _query) external returns (uint256 id);
}
contract CovoirLookup {
function getQueryAddress() constant public returns (address);
function getResponseAddress() constant public returns (address);
}
contract usingCovoirOracle {
address constant lookupContract = 0x6a6d85aa8a9c7e7d9bbaf25053c8f9a5dd616d3c;
modifier fromCovoirOracle() {
CovoirLookup lookup = CovoirLookup(lookupContract);
if (msg.sender != lookup.getResponseAddress())
revert();
_;
}
function queryCovoirOracle(bytes query) internal returns (uint256 id) {
CovoirLookup lookup = CovoirLookup(lookupContract);
CovoirOracle covoirOracle = CovoirOracle(lookup.getQueryAddress());
return covoirOracle.query(query);
}
}
pragma solidity ^0.4.21;
import "./api_covoir.sol";
contract SampleClient is usingCovoirOracle {
bytes public response;
uint256 public id_response;
event resultEvent(uint256 id, bytes responseIpfs);
function _oracleCallback(uint256 id, bytes _response) fromCovoirOracle external {
response = _response;
id_response = id;
resultEvent(id_response, responseIpfs);
}
function queryExample(string queryIpfs) public {
//IPFS Hash
queryCovoirOracle(bytes(queryIpfs));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment