【问题标题】:How to get median data from 2 Urls如何从 2 个 Urls 获取中值数据
【发布时间】:2021-07-15 20:29:58
【问题描述】:

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

  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 个 url 获取数据(最后和价格)并计算来自 2 个 url 的数据的中位数 即中位数 = {last+price)/2; 如何在 Chainlink 中为这个逻辑编写代码

【问题讨论】:

    标签: blockchain ethereum smartcontracts chainlink


    【解决方案1】:

    首先,您需要按照 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
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 2020-10-23
      • 1970-01-01
      • 2018-04-20
      相关资源
      最近更新 更多