所需燃气超过限制

时间:2018-02-21 19:08:07

标签: ethereum remix metamask

我正在尝试使用remix.ethereum.org上的注入web3环境(即元掩码)在Ropsten上部署以下合同/

pragma solidity ^0.4.16;

contract Coin {
    // The keyword "public" makes those variables
    // readable from outside.
    address public minter;
    mapping (address => uint) public balances;

    // Events allow light clients to react on
    // changes efficiently.
    event Sent(address from, address to, uint amount);

    // This is the constructor whose code is
    // run only when the contract is created.
    function Coin() public {
        minter = msg.sender;
    }
}

我以前可以使用remix轻松创建合约。我不确定发生了什么变化,但由于气体限制,我无法创建合同。我甚至将气体限制设置为2个完全的醚(即值1以太,最大值为2)。我的metamask钱包里有近3个醚。重新混合“帐户”下拉列表也正确显示我的元掩码地址,因此似乎已注入的环境已连接。

当我尝试创建此合同时,我无法通过所需的气体超过限制2错误。我为什么这个简单的合同会超过2个完整的Ethers的成本而感到头疼。

正在使用的混音的其他参数:

优化=假安培;版本= soljson-v0.4.20 + commit.3155dd80.js

我忘记了混音的设置吗?我正在尝试从Chrome部署此功能。

编辑:我仍然在这个问题上摸不着头脑。刷新我的页面后,我能够在短时间内创建上面的合同,但是我今天进来尝试运行https://www.ethereum.org/token中的代码,我无法通过值为20的超量气体错误Gwei和3000000的限制。注意,我尝试使用上面的简单样本合同,我回到我开始时的位置 - 即使上面简单的“硬币”合同显然超过了气体限制。

编辑2:嗯,我想我到了某个地方。我已将编译器版本从“soljson-v0.4.20 + commit.3155dd80.js”更改为“soljson-v0.4.19 + commit.c4cbbb05.js”。然后我刷新页面3次。之后我等了几分钟,事情似乎又恢复了。这里还有其他的事情发生,因为当我在元掩码中拒绝交易然后返回重新混合再次创建时,我遇到了气体超出错误。我不相信这里的问题是metamask,因为我尝试使用testrpc本地连接 - localhost:8545 - 并遇到同样的问题。我可以说的是,我尝试创建的相同代码由于大多数时间的气体错误而无法提交,但无论编译器版本如何都偶尔有效。

0 个答案:

没有答案