首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Remix公司的合同总是供不应求

Remix公司的合同总是供不应求
EN

Ethereum用户
提问于 2018-03-04 12:47:28
回答 2查看 1.2K关注 0票数 2

我正在尝试使用最新的ganache-cli v6.0.3 (ganache-core: 2.0.2)和Remix (http!http://remix.ethereum.org上的版本)。因此,在没有标准端口8545上任何额外参数的情况下启动ganache-cli之后,我通过web3提供程序http://127.0.0.1:8545在Remix上连接,我的帐户就会显示出来,就像Ganache显示的那样。

这是我想要部署的合同:

代码语言:javascript
复制
pragma solidity ^0.4.20;

contract Test {

    uint[4] public arr; // [0,0,0,0]
    event TestLog(string logmessage);

    function Test() public {
        arr[0] = 1; // [1,0,0,0]
    }

    function checkArray() public {
        if(arr[0] == 1) { // arr == [1,?,?,?]
            arr[1] = 1;
            arr[0] = 0; // switch values [0,1,0,0]
        }
        TestLog("some log");
    }

}

它适用于Remix:[vm] from:0xca3...a733c, to:Test.checkArray() 0x692...77b3a, value:0 wei, data:0x7b3...f7296, 1 logs, hash:0xa6f...87209中内置的Javascript VM。

如果我试图在通过checkArray提供程序连接到ganache的Remix中运行web3函数,就会得到一个transact to Test.checkArray errored: VM Exception while processing transaction: out of gas错误。

我在这里做错什么了?把gasLimit和ganache-cli -l 5000000放在一起没有帮助,甚至更高的值,以及一个非常小的gasPrice和很高的气体限制的后续测试。在Remix网站建立交易时,设置错误的气体限制是Remix的问题吗?我也在一个私人的节点上试过,结果也是一样的:没有气体.

任何帮助都很感激!

EN

回答 2

Ethereum用户

发布于 2018-03-04 19:04:54

这似乎是一个testrpc/ganache错误。造成故障的线路是将0位置的数组值分别设置为零arr[0] = 0;

我使用Rinkeby与相同的合同,它的工作,最初的预期。您可以在这里测试它:https://rinkeby.etherscan.io/address/0x78aC7667BdeDC3b1CdF43611AdF7a88e05b600F5

由于这是一些非常基本的功能,我只能说:他妈的怎么回事?

票数 1
EN

Ethereum用户

发布于 2018-03-13 16:36:30

在我看来,设置arr[0]是不正确的,因为该元素不存在。它总是离开数组的末尾。使用arr.push(1)扩展数组的长度。

希望能帮上忙。

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/41651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档