Контрактная заводская функция, работающая на газе во время теста Трюфеля

Используя библиотеку openzeppelin и трюфель, я пытаюсь создать фабрику контрактов, которая создает маркеры ERC20. Я предпочитаю проверять его с помощью трюфеля, используя твердость, а не javascript.

Вот код из Контракта

    pragma solidity ^0.4.24;

import "zos-lib/contracts/migrations/Migratable.sol";
import "openzeppelin-solidity/contracts/token/ERC20/StandardToken.sol";
import "openzeppelin-solidity/contracts/ownership/Ownable.sol";

contract TokenFactory is Migratable {

    address[] public deployedTokens;

    function createToken(string name, string symbol) public {
        address newToken = new Token(name,symbol,msg.sender);
        deployedTokens.push(newToken);            
    }

    function getDeployedTokens() public view returns (address[]) {
        return deployedTokens;
    }

}

contract Token is StandardToken, Ownable {
    string public name = ""; 
    string public symbol = "";
    uint public decimals = 2;
    uint public INITIAL_SUPPLY = 10000 * (10 ** decimals);

    constructor(string _name, string _symbol, address creator) {
        owner = creator;        
        name = _name;
        symbol = _symbol;
        totalSupply_ = INITIAL_SUPPLY;
    }    
}

и Test

pragma solidity ^0.4.24;

import "truffle/Assert.sol";
import "truffle/DeployedAddresses.sol";
import "../contracts/TokenFactory.sol";

contract TestTokenFactory {

    TokenFactory tk = TokenFactory(DeployedAddresses.TokenFactory());

    function testChildContractDeployed() public {

        tk.createToken("xxx","sym");
        address[] memory deployedTokens = tk.getDeployedTokens();
        Assert.equal(deployedTokens.length, 1, "Contact is not deployed");

    }

}

my truffle.js

'use strict';

module.exports = {
  networks: {
    local: {
      host: 'localhost',
      port: 7545,
      gas: 6000000,
      gasPrice:1,
      network_id: '*'
    }
  }
};

и ошибка после запуска truffle test --network local

  

1) TestTokenFactory          «до всех» крюк: подготовить сюиту:        Ошибка: VM Исключение при обработке транзакции: из газа

3 голоса | спросил arisalexis 23 J000000Monday18 2018, 13:47:07

1 ответ


2

Мне понадобилось время, чтобы понять, что с тобой не так (спасибо за загадку). Вот как я получаю ваш тест:

1- Я изменил truffle.js следующим образом:

networks: {
    local: {
      host: 'localhost',
      port: 7545,
     // gas: 6000010,
     // gasPrice:10000000000,
      network_id: '*'
    }
  }

, но вместо этого из газа у меня появилось исключение,

 введите описание изображения здесь>> </a> </p>

<p> для работы с созданным сценарием миграции (2_initial_migration.js): </p>

<pre><code>---- +: = 1 = + ----</code></pre>

<p>, то тест прошел успешно [/p>

<p> <a href= введите описание изображения здесь>> </a> </p></body></html>

ответил Badr Bellaj 26 J000000Thursday18 2018, 21:42:41

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132