In der Trüffelkompilierung stecken

Wenn ich es ausführe, truffle compilebleibt es nach dem Kompilieren von Verträgen für immer hängen. Ich importiere die Openzeppelin-Bibliothek und verwende infura , ropsten und metamask, um den Vertrag im Testnetz bereitzustellen. . Hier ist die Ausgabe

Compiling ./contracts/Migrations.sol...
Compiling ./contracts/obaidminttoken.sol...
Compiling zeppelin-solidity/contracts/math/SafeMath.sol...
Compiling zeppelin-solidity/contracts/ownership/Ownable.sol...
Compiling zeppelin-solidity/contracts/token/ERC20/BasicToken.sol...
Compiling zeppelin-solidity/contracts/token/ERC20/ERC20.sol...
Compiling zeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol...
Compiling zeppelin-solidity/contracts/token/ERC20/MintableToken.sol...
Compiling zeppelin-solidity/contracts/token/ERC20/StandardToken.sol...
Writing artifacts to ./build/contracts

Hier ist meine truffle.js-Datei

require('dotenv').config();
const HDWalletProvider = require("truffle-hdwallet-provider");
module.exports = {
  networks: {
    development: {
      host: "localhost",
      port: 7545,
      gas: 6500000,
      network_id: "5777"
    },
    ropsten: {
        provider: new HDWalletProvider(process.env.MNENOMIC, "https://ropsten.infura.io/v3/" + process.env.INFURA_API_KEY),
        network_id: 3,
        gas: 4500000
    },
  }
};
truffle compilekompiliert nur. Wenn Sie bereitstellen möchten, verwenden Sietruffle migrate
Was ist Ihre Truffle-Version?
@goodvibration Truffle v4.1.8 (Kern: 4.1.9) Solidity v0.4.24 (solc-js)

Antworten (2)

Überprüfen Sie, ob der Dateiname mit dem Vertragsnamen übereinstimmt, z. Wenn der Name des Vertrags lautet: Voting , nennen Sie die Datei voting.sol.
Wenn das nicht funktioniert, versuchen Sie, die JSON-Dateien unter zu löschen, build/contracts/und führen Sie sie truffle compileerneut aus.

Weitere Informationen finden Sie unter https://github.com/trufflesuite/truffle-migrate/issues/14

Ja habe ich überprüft. Ich habe versucht, diesen Befehl ohne Kompilierung auszuführen truffle migrate --network ropsten, und er blieb beim Speichern von Artefakten hängen. Eine Sache, die ich fragen möchte, muss ich meine 1_initial_migration.jsoder nur 2_initial_migration.jsDatei ändern?

Dieses Problem wurde behoben, indem der HDWallet-Anbieter in die truffle.js-Datei eingeschlossen wurde. Hier ist ein aktualisierter truffle.js-Code

require('dotenv').config();
const HDWalletProvider = require("truffle-hdwallet-provider");
module.exports = {
  networks: {
    development: {
      host: "localhost",
      port: 7545,
      gas: 6500000,
      network_id: "5777"
    },
    ropsten: {
        provider:function() { return new HDWalletProvider(process.env.MNENOMIC, "https://ropsten.infura.io/v3/" + process.env.INFURA_API_KEY);},
        network_id: 3,
        gas: 4500000
    },
  }
};