You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Chainlink预言机将价格喂价从ETH/USD切换为BUSD/USD并解决Kovan测试网报错

问题修复指南

触发回滚的根本原因

  • Kovan测试网已正式下线,Chainlink官方已于2022年全面停止Kovan链上所有Price Feed服务的节点支持,调用已下线的喂价接口会直接触发VM执行回滚,这是你切换任意代币都报错的核心原因。
  • 代码存在地址不匹配错误:注释中标注的Kovan ETH/USD喂价地址为0x9326BFA02ADD2366b30bacB125260Af641031331,但构造函数中实际传入的是另一个地址,即使Kovan可用,喂价地址填写错误也会导致调用失败。

具体修复步骤

    1. 替换测试网:切换到Chainlink当前支持的活跃测试网,推荐使用Sepolia测试网。
    1. 替换对应喂价地址:Sepolia测试网可用的喂价地址如下,根据你需要的交易对替换构造函数中的地址即可:
    • BUSD/USD:0x9331b55D9830EF609A2aA09d3131B7734EE0f7Ce
    • ETH/USD:0x694AA1769357215DE4FAC081bf1f309aDC325306
    1. 原业务逻辑无需修改,调整参数后即可正常调用。

修复后代码示例(Sepolia + BUSD/USD)

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

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

contract PriceConsumerV3 {

    AggregatorV3Interface internal priceFeed;

    /**
     * Network: Sepolia
     * Aggregator: BUSD/USD
     * Address: 0x9331b55D9830EF609A2aA09d3131B7734EE0f7Ce
     */
    constructor() public {
        priceFeed = AggregatorV3Interface(0x9331b55D9830EF609A2aA09d3131B7734EE0f7Ce);
    }

    /**
     * Returns the latest price
     */
    function getLatestPrice() public view returns (int) {
        (
            uint80 roundID, 
            int price,
            uint startedAt,
            uint timeStamp,
            uint80 answeredInRound
        ) = priceFeed.latestRoundData();
        return price;
    }
}

内容的提问来源于stack exchange,提问作者khunachik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 18:54:04