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

Kovan测试网调用FundMe.getVersion触发VM执行错误回滚如何解决

问题根因

你遇到的Attn: call to FundMe.getVersion errored: VM execution error. Reverted 0x报错由以下原因触发:

代码中getVersion()函数硬编码的喂价合约地址仅在以太坊主网部署了对应AggregatorV3Interface合约,不同链环境相互隔离,你当前部署FundMe合约的Kovan测试网上不存在该地址的合约,调用无返回结果不符合函数预期的uint256返回值要求,触发交易回滚。

修复方案
  • 方案1:替换为对应测试网的喂价地址
    如果你需要在Kovan测试网完成测试,直接将硬编码的喂价地址替换为Kovan链对应的ETH/USD喂价地址即可,修改后的代码片段如下:
    function getVersion() public view returns (uint256) {
        // 替换为Kovan测试网ETH/USD喂价地址
        AggregatorV3Interface priceFeed = AggregatorV3Interface(0x9326BFA02ADD2366b30bacB125260Af641031331);
        return priceFeed.version();
    }
    
  • 方案2:切换部署网络
    如果你不需要测试逻辑,直接将FundMe合约部署到以太坊主网,即可正常调用当前硬编码的主网喂价地址。
  • 方案3:优化代码适配多链
    避免硬编码喂价地址,改为部署时通过构造函数传入对应链的喂价地址,适配不同部署环境,完整优化代码参考如下:
    // SPDX-License-Identifier: MIT
    pragma solidity >=0.6.6 <0.9.0;
    
    interface AggregatorV3Interface {
      function decimals() external view returns (uint8);
      function description() external view returns (string memory);
      function version() external view returns (uint256);
      function getRoundData(uint80 _roundId) external view returns (
        uint80 roundId,
        int256 answer,
        uint256 startedAt,
        uint256 updatedAt,
        uint80 answeredInRound
      );
      function latestRoundData() external view returns (
        uint80 roundId,
        int256 answer,
        uint256 startedAt,
        uint256 updatedAt,
        uint80 answeredInRound
      );
    }
    
    contract FundMe {
        mapping(address =>uint256) public addressToAmountFunded;
        AggregatorV3Interface public immutable priceFeed;
    
        // 部署时传入当前链对应的喂价地址
        constructor(address _priceFeed) {
            priceFeed = AggregatorV3Interface(_priceFeed);
        }
    
        function fund() public payable {
            addressToAmountFunded[msg.sender] += msg.value;
        }
    
        function getVersion() public view returns (uint256) {
            return priceFeed.version();
        }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:06:02