Created
June 17, 2019 02:20
-
-
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=
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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