solidity报错处理:VM Exception while processing transaction: invalid opcode

博客内容讲述了在使用Solidity进行智能合约开发时遇到的VMException错误,具体表现为在构造函数处报错。问题根源在于使用的Solidity版本过旧。通过将Solidity版本升级到0.4.24并相应更新编译器,成功解决了此问题。修复后的代码能够正常编译且在不同节点环境中运行无误。

关于solidity开发时遇到的VM Exception while processing transaction: invalid opcode问题,我的代码如下:

pragma solidity ^0.4.16;
contract modifierTest{
    uint a=0;
    address owner;
    constructor() public{
        owner = msg.sender;
    }
     modifier onlyOwner{
        require(msg.sender == owner);
        _;
    }
    function changeIt(uint _a)public onlyOwner{
        a = _a;
    }
}

发现在运行构造函数处提示VM Exception while processing transaction: invalid opcode错误。

改正方法如下:

pragma solidity ^0.4.24;//改成了24版本,同时也要改编译器的版本
contract modifierTest{
    uint a=0;
    address owner;
    constructor() public{
        owner = msg.sender;
    }
     modifier onlyOwner{
        require(msg.sender == owner);
        _;
    }
    function changeIt(uint _a)public onlyOwner{
        a = _a;
    }
}

然后将
两点修改修改后编译成功,运行不再报错。在改回原来的节点环境也能运行了。节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值