Solidity:为什么这个简单的存储合同不起作用?

时间:2018-03-13 23:22:24

标签: ethereum solidity truffle go-ethereum evm

我通过创建一个简单的存储合同来练习,但是我无法存储或检索数组中的值#34;数字。" uint" structID"没有增加和功能" testRetrieve"仅为正确的索引返回0。

" StructID"不是递增让我相信问题在于功能"存储。"但是,在SO和在线教程/文档中阅读了多个问题之后,我仍然感到难过。

有谁知道为什么这份合同不会存储数据?

contract testStruct {

   uint public structID;

    struct SomeStruct {
        uint[] numbers;
    }

    SomeStruct[] someStructs;

    function store(uint _numbers, uint entryID) public {

        SomeStruct memory someStruct;
        someStructs.push(someStruct);

        someStructs[entryID].numbers.push(_numbers);

        structID++;

    }

    function testRetrieve(uint entryID, uint test) public view returns (uint) {

        return someStructs[entryID].numbers[test];

    }
}

编辑:对于上面的函数,我在私有区块链上调用geth控制台中的所有函数。对于" testRetrieve",我用" 0"来测试函数。为" entryID"提供了和"测试"指定数组中的第一个条目。

函数“store”在调用时发送事务。

编辑:

问题是天然气。即使我的私人网络的天然气价格低,在我的网上交易200000天然气(商店功能成本大约为104000)超过默认值90000也能让它成功。

0 个答案:

没有答案