Vertragsmigrationsfehler: Der Vertragscode konnte nicht gespeichert werden, bitte überprüfen Sie Ihre Gasmenge

Ich versuche, mein einfaches ERC20Token mit lokal installiertem Truffle bereitzustellen , erhalte jedoch diesen Fehler:

truffle migrate --reset
Using network 'development'.

Running migration: 1_initial_migration.js
  Replacing Migrations...
  Migrations: 0xc67440ccf402de259e5d6193eec29283bcb5555e
Saving successful migration to network...
Saving artifacts...
Running migration: 2_deploy_contracts.js
  Deploying ERC20...
Error encountered, bailing. Network state unknown. Review successful transactions manually.
Error: The contract code couldn't be stored, please check your gas amount.

ERC20Klasse enthält:

pragma solidity ^0.4.11;

    contract ERC20 {
        //uint public totalSupply;
        function totalSupply() constant returns (uint totalSupply);

        function balanceOf(address _owner) constant returns (uint balance);
        function transfer(address _to, uint _value) returns (bool success);
        function transferFrom(address _from, address _to, uint _value) returns (bool success);
        function approve(address _spender, uint _value) returns (bool success);
        function allowance(address _owner, address _spender) constant returns (uint remaining);

        event Transfer(address indexed _from, address indexed _to, uint _value);
        event Approval(address indexed _owner, address indexed _spender, uint _value);
    }

Migrations-JS-Datei:

var ERC20 = artifacts.require("./ERC20.sol");
var SafeMath = artifacts.require("./SafeMath.sol");

var MyToken = artifacts.require("./MyToken.sol");

module.exports = function(deployer) {
  deployer.deploy(ERC20);
  //deployer.deploy(SafeMath);
  //deployer.link(ERC20, MyToken);
  //deployer.link(SafeMath, MyToken);

  //deployer.deploy(MyToken);
};

Umfeld:

Truffle v3.3.0, bundle version: 3.3.1
Solidity v0.4.11 (solc-js)
EthereumJS TestRPC v3.0.5

Mein Token wird also von diesem Vertrag geerbt ERC20, aber ich kann nicht einmal einen übergeordneten Vertrag kompilieren. Was ist falsch?

können Sie auch Ihre Datei 2_deploy_contracts.js freigeben.
@Sanchit ja, hinzugefügt.
Normalerweise, wenn Sie zu viele Dateien haben, die in der Migrationsdatei bereitgestellt werden müssen, kann das Aufteilen in mehrere Dateien das Problem „Kein Gas“ beheben, aber hier scheint das in Ihrem Fall kein Problem zu sein.
Also, was kann es dann sein?
Ihre ERC20.sol ist ein abstrakter Vertrag solidity.readthedocs.io/en/develop/… : Solche Verträge können nicht kompiliert werden , sie werden nicht bereitgestellt.

Antworten (1)

Abstrakte Verträge können nicht kompiliert werden (selbst wenn sie implementierte Funktionen neben nicht implementierten Funktionen enthalten), aber sie können als Basisverträge verwendet werden.

Mehr Details Abstrakte Verträge