微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从 2 个 URL 获取中值数据

如何解决如何从 2 个 URL 获取中值数据

在下面的代码中,我有 2 个网址,每个网址都有一个路径

  These are 2 urls 
    api[0] = "https://www.bitstamp.net/api/v2/ticker/ethusd/";
    api[1] = "https://api.pro.coinbase.com/products/eth-usd/ticker";

  The path for URL 0 is last and the path for URL 1 is price

我希望chainlink节点从这2个网址获取数据(最后和价格)并计算来自2个网址的数据中位数 即中位数 = {last+price)/2; 如何在Chainlink中为这个逻辑编写代码

解决方法

首先,您需要在 Chainlink 文档之后进行 2 个 API 调用。 https://docs.chain.link/docs/make-a-http-get-request/

类似于:

function makeAPICall() public returns (bytes32 requestId) 
    {
        Chainlink.Request memory request = buildChainlinkRequest(jobId,address(this),this.fulfill.selector);
        request.add("get","https://min-api.cryptocompare.com/data/pricemultifull?fsyms=ETH&tsyms=USD");
        int timesAmount = 10**18;
        request.addInt("times",timesAmount);
        return sendChainlinkRequestTo(oracle,request,fee);
    }

然后,在您的履行功能中,您将采用列表的中位数。

function fulfill(bytes32 _requestId,uint256 _volume) public recordChainlinkFulfillment(_requestId)
    {
        answers.push(_volume);
        // loop through list and take median
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。