3分钟Solidity: 15.12 DeFi - Chainlink 价格预言机

22 阅读1分钟

欢迎订阅专栏3分钟Solidity--智能合约--Web3区块链技术必学

Chainlink 价格预言机

如需获取此内容的最新版本,请访问 Cyfrin.io 上的 Chainlink 价格预言机(代码示例)

Chainlink 是一个去中心化的预言机网络,是连接链上智能合约与链下现实世界数据的核心桥梁12。它通过聚合多个独立节点从权威数据源(如各大交易所)获取的信息,经链下处理和链上验证,为DeFi等应用提供安全、可靠且防篡改的价格等数据34

ETH / USD 价格预言机

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

contract ChainlinkPriceOracle {
    AggregatorV3Interface internal priceFeed;

    constructor() {
        // ETH / USD
        priceFeed =
            AggregatorV3Interface(0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419);
    }

    function getLatestPrice() public view returns (int256) {
        (
            uint80 roundID,
            int256 price,
            uint256 startedAt,
            uint256 timeStamp,
            uint80 answeredInRound
        ) = priceFeed.latestRoundData();
        // ETH/USD 价格按 10^8 比例放大
        return price / 1e8;
    }
}

interface AggregatorV3Interface {
    function latestRoundData()
        external
        view
        returns (
            uint80 roundId,
            int256 answer,
            uint256 startedAt,
            uint256 updatedAt,
            uint80 answeredInRound
        );
}

Try on Remix