当我添加一个简单的功能时,为什么运行我的SmartContract气体

问题描述 投票:1回答:1

我有一个从openzeppelin的MintableToken派生的简单令牌。

但是,当我添加一个Constructor或另一个函数时,我的气体总是耗尽。但是,当我只添加其中一个,无论是构造函数还是函数,一切正常。

我的问题是:如何将多个函数与构造函数一起添加到我的SmartContract中?

The Token-Code:

pragma solidity ^0.4.22;

import "openzeppelin-solidity/contracts/token/ERC20/MintableToken.sol";

contract HaioToken is MintableToken {
    string public name = "Haio Token";
    string public symbol = "HAI";
    uint8 public decimals = 18;

    uint256 public cap;

    constructor(uint256 _cap) public {
        cap = _cap;
    }

    function test(address _to) public returns (bool) {
        return true;    
    }

}

Migrations:

2_deploy_contracts.js:

var HaioToken = artifacts.require("HaioToken");

module.exports = function(deployer, network, accounts) {
  const hardCap = 25000000;

  return deployer
      .then(() => {
          return deployer.deploy(HaioToken, hardCap);
      })
};

当我想部署代码时,我收到以下错误消息:

错误:处理事务时出现VM异常:缺少气体

如果我删除构造函数或测试函数,一切正常。

ethereum solidity smartcontracts truffle open-zeppelin
1个回答
1
投票

我猜你正在运行带有松露默认设置的迁移,这些设置在运行“truffle init”之后出来了不是吗?

您应该在truffle.js(或Windows上的truffle-config.js)中通过这种方式提高您要发送的合同气体:

module.exports = {
  networks: {
    development: {
      host: "localhost",
      port: 7545,
      network_id: "*",
      gas: 5000000
    }
  }
};

(5000000的值是一个开箱即用的示例,如果您不必关心,因为在本地testnet上开发:))

© www.soinside.com 2019 - 2024. All rights reserved.