9 Star 26 Fork 7

WeBankBlockchain/Truora-Service

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
APISampleOracle.sol 2.06 KB
一键复制 编辑 原始数据 按行查看 历史
yanyanho 提交于 2021-03-16 18:45 +08:00 . fix the callback method to internal
pragma solidity ^0.6.0;
import "./FiscoOracleClient.sol";
contract APISampleOracle is FiscoOracleClient {
//指定处理的oracle
address private oracleCoreAddress;
// Multiply the result by 1000000000000000000 to remove decimals
uint256 private timesAmount = 10**18;
mapping(bytes32=>int256) private resultMap;
mapping(bytes32=>bool) private validIds;
int256 public result;
string private url = "json(https://api.exchangerate-api.com/v4/latest/CNY).rates.JPY";
constructor(address oracleAddress) public {
oracleCoreAddress = oracleAddress;
}
function request() public returns (bytes32)
{
// Set your URL
// url = "plain(https://www.random.org/integers/?num=100&min=1&max=100&col=1&base=10&format=plain&rnd=new)";
// url = "json(https://api.exchangerate-api.com/v4/latest/CNY).rates.JPY";
bytes32 requestId = oracleQuery(oracleCoreAddress, url, timesAmount, returnType);
validIds[requestId] = true;
return requestId;
}
/**
* Receive the response in the form of int256
*/
function __callback(bytes32 _requestId, bytes memory _result) internal override
{
require(validIds[_requestId], "id must be not used!") ;
result = int256(bytesToBytes32(_result));
resultMap[_requestId]= result;
delete validIds[_requestId];
}
function get() public view returns(int256){
return result;
}
function getById(bytes32 id) public view returns(int256){
return resultMap[id];
}
function checkIdFulfilled(bytes32 id) public view returns(bool){
return validIds[id];
}
function setUrl(string memory _url) public {
url = _url;
}
function getUrl() public view returns(string memory){
return url;
}
function bytesToBytes32(bytes memory source) private pure returns (bytes32 result) {
if (source.length == 0) {
return 0x0;
}
assembly {
result := mload(add(source, 32))
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/WeBankBlockchain/Truora-Service.git
git@gitee.com:WeBankBlockchain/Truora-Service.git
WeBankBlockchain
Truora-Service
Truora-Service
main

搜索帮助