0

我正在尝试使用 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 个完整以太币的成本。

使用中混音的其他参数:

优化=false&版本=soljson-v0.4.20+commit.3155dd80.js

有没有我忘记的混音设置?我正在尝试从 Chrome 部署它。

编辑:我仍然在这个问题上摸不着头脑。刷新我的页面后,我能够在上面短暂地创建合约,但我今天进来尝试运行来自https://www.ethereum.org/token的代码,但我无法通过超额气体错误,值为 20 Gwei,限制为 3000000。请注意,我尝试使用上面的简单示例合约,但我又回到了开始时的状态——即使上面的简单“硬币”合约显然也超过了 gas 限制。

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

4

0 回答 0