solidity使用 chainlink 预言机获取token价格


首先安装相关仓库

yarn add @chainlink/contracts

示例代码(rinkeby,如需要其他测试网/token的地址可以来这里 查看并替换一下下面的地址):

// SPDX-License-Identifier: MIT
pragma solidity ^0.6.7;

import "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol";

contract PriceConsumerV3 {
    uint256 public randomNum;

    AggregatorV3Interface internal priceFeed;

    /**
     * Aggregator: ETH/USD
   */
    // 在这里填入你的对应网络的合约地址
    constructor(address addr) public {
        priceFeed = AggregatorV3Interface(addr);
    }

    /**
     * 调用 getLatestPrice 即可获取价格
    */
    function getLatestPrice() private view returns (int) {
        (
            uint80 roundID,
            int price,
            uint startedAt,
            uint timeStamp,
            uint80 answeredInRound
        ) = priceFeed.latestRoundData();
        return price;
    }
}
调用合约 PriceConsumerV3.getLatestPrice() 即可获取链上价格

tips