Truffle V3.1.9, Fehler beim Ausführen von Migrationen

Hey, ich aktualisiere mein Truffle-Projekt von V2 auf V3 und erhalte nach der Migration diesen Fehler:

sudo truffle migrate --network development
Using network 'development'.

Running migration: 1_initial_migration.js
  Deploying Migrations...
Error encountered, bailing. Network state unknown. Review successful transactions manually.
Error: Migrations error: contract binary not set. Can't deploy new instance.
    at Function.new (/usr/lib/node_modules/truffle/node_modules/truffle-contract/contract.js:324:15)
    at /usr/lib/node_modules/truffle/node_modules/truffle-migrate/node_modules/truffle-deployer/src/actions/deploy.js:25:29
    at process._tickCallback (internal/process/next_tick.js:103:7)

Hier ist meine truffle.js-Datei:

module.exports = {
networks: {
development: {
  host: "localhost",
  port: 8545,
  network_id: "*"
},
staging: {
  host: "localhost",
  port: 8546,
  network_id: 1337
},
ropsten: {
  host: "158.253.8.12",
  port: 8545,
  network_id: 3
}

} }

Vertragsdatei bereitstellen:

var Project = artifacts.require("./Project.sol");
var FundingHub = artifacts.require("./FundingHub.sol");

module.exports = function(deployer) {
  deployer.deploy(Project);
  deployer.deploy(FundingHub);
};
Ich bin mit Nuancen in 3.x noch nicht so vertraut, aber in 2.x kommt mir so etwas bekannt vor. Tritt häufig auf, wenn das Deployer-Konto gesperrt ist. "Network State Unknown" ist ein wenig verwirrend, bis Sie sich daran gewöhnt haben.
Hmm soo das wäre der testrpc Account?
Wenn testrpc, versuchen Sie $ testrpc -u 0 -u 1 .... entsperrt die Konten 0 und 1, die standardmäßig nicht entsperrt sind, wenn ich mich nicht irre.
Ok, ich bin vorerst zu Truffle 2 zurückgekehrt, werde es aber versuchen, sobald ich mit dem aktuellen Projekt fertig bin.

Antworten (1)

Wenn Sie eine Funktion haben, die eine abstrakte Funktion in Ihrem Vertrag ist.

function addr(string _name) constant returns (address o_owner)

Der gesamte Vertrag wird als abstrakter Vertrag zusammengestellt, daher erhalten Sie diese Fehlermeldung. Es mag mir ähnlich gehen, dass Sie nie daran denken, einen abstrakten Vertrag zu schreiben, sondern nur schnell etwas Code kopieren, und simsallabim, Sie haben einige abstrakte Funktionen, ohne darüber nachzudenken. Fügen Sie ihnen also entweder Funktionskörper hinzu oder entfernen Sie sie.

Dann wird Ihr Vertrag erstellt.