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

Metamask与Ganache中出现Invalid opcode错误的解决方法咨询

解决Remix部署合约时Ganache与MetaMask的Invalid opcode错误

常见原因及修复方案

  • Ganache版本兼容问题
    Solidity 0.8.x系列引入了底层 opcode 变更,旧版Ganache无法适配这些新指令,就会抛出Invalid opcode错误。
    修复:把Ganache升级到最新稳定版,确保它支持Solidity 0.8.x的所有特性。

  • Remix编译器优化冲突
    如果Remix开启了编译器优化(尤其是高等级优化),生成的字节码可能让Ganache无法正确解析,触发错误。
    修复:在Remix的编译面板里,把优化等级改成0(关闭优化),重新编译合约后再部署。

  • 链ID不匹配
    即便你确认连接正常,MetaMask的链ID和Ganache的链ID不一致,也会导致交易执行异常。
    修复:查看Ganache的链ID(默认是1337),在MetaMask对应网络里把链ID改成相同值,重启MetaMask后重试。

  • Ganache区块gas限制不足
    哪怕合约逻辑简单,要是Ganache的区块gas设置过低,部署或执行交易时可能因gas耗尽触发类似错误。
    修复:在Ganache的设置中调高区块gas限制(比如设为30000000),重启Ganache后重新部署合约。

预验证步骤

部署前先做这些检查:

  1. 确认Remix里的Solidity编译器版本和Ganache支持的版本匹配;
  2. 关闭Remix的编译器优化选项;
  3. 核对MetaMask与Ganache的RPC地址、链ID完全一致;
  4. 确保Ganache里用来部署的账户有足够测试ETH。

涉事合约代码

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

contract WebsiteStorage {
    string private storedWebsite;

    function setWebsite(string calldata url) public {
        storedWebsite = url;
    }

    function getWebsite() public view returns (string memory) {
        return storedWebsite;
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 02:07:12