Ethereum 当我添加一个简单的函数时,为什么要耗尽SmartContract

Ethereum 当我添加一个简单的函数时,为什么要耗尽SmartContract,ethereum,solidity,smartcontracts,truffle,openzeppelin,Ethereum,Solidity,Smartcontracts,Truffle,Openzeppelin,我有一个来自openzeppelin的MintableToken的简单令牌 然而,当我添加一个构造函数或另一个函数时,我的气总是用光了。但是当我只添加两个函数中的一个时,无论是构造函数还是函数,一切都很好 我的问题是:如何将多个函数与构造函数一起添加到SmartContract中 令牌代码: 迁移: 2_deploy_contracts.js: var HaioToken = artifacts.require("HaioToken"); module.exports = function(d

我有一个来自openzeppelin的
MintableToken
的简单令牌

然而,当我添加一个构造函数或另一个函数时,我的气总是用光了。但是当我只添加两个函数中的一个时,无论是构造函数还是函数,一切都很好

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

令牌代码: 迁移: 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异常:气体不足


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

我猜您正在使用运行“
truffle init
”后附带的默认设置运行迁移,不是吗

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

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

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

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

  return deployer
      .then(() => {
          return deployer.deploy(HaioToken, hardCap);
      })
};
module.exports = {
  networks: {
    development: {
      host: "localhost",
      port: 7545,
      network_id: "*",
      gas: 5000000
    }
  }
};