添加简单功能后,为什么我的SmartContract不够用

时间:2018-09-09 15:27:56

标签: ethereum solidity smartcontracts truffle open-zeppelin

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

但是,当我添加一个构造函数或另一个函数时,我总是精疲力尽。但是,当我仅添加构造函数或函数两者之一时,一切正常。

我的问题是:如何在SmartContract中添加几个函数以及一个构造函数?

令牌代码:

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;    
    }

}

迁移:

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异常:用完

如果我删除了构造函数或测试函数,一切都会很好。

1 个答案:

答案 0 :(得分:1)

我想您正在使用运行“ {TempData”后立即使用的松露默认设置来运行迁移吗?

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

truffle-config.js

(5000000的值通常是开箱即用的示例,如果您不必在意,因为是在本地测试网上进行开发的,则是这样:)