Ich verwende testrpc. Beim Ausführen der Truffle-Migration erhalte ich die folgende Fehlermeldung:
/usr/local/lib/node_modules/truffle/node_modules/truffle-contract/contract.js:671
throw new Error(this.contract_name + " has no network configuration for its current network id (" + network_id + ").");
^
Error: XXXTokenFactory has no network configuration for its current network id (1497979617513).
Meine truffle.js als folgenden Inhalt
// Allows us to use ES6 in our migrations and tests.
require('babel-register')
module.exports = {
networks: {
development: {
host: 'localhost',
port: 8545,
network_id: '*' // Match any network id
}
}
}
Was vermisse ich? Würde mich über jede Hilfe freuen, die ich bekomme. Vielen Dank
Dies scheint aufzutreten, wenn Sie versuchen, einen Vertrag bereitzustellen , der vom Vertrag A
abhängt, B
bevor der Vertrag B
tatsächlich bereitgestellt wurde.
Sie haben wahrscheinlich so etwas:
module.exports = function(deployer, network, accounts) {
deployer.deploy(B);
deployer.deploy(A, B.address);
};
Es ist im Wesentlichen eine Rennbedingung, da B.address
es wahrscheinlich nicht rechtzeitig für den zweiten deployer.deploy
Anruf bereit ist. Verwenden Sie also das Versprechen, deploy
das wie folgt zurückgegeben wird:
module.exports = function(deployer, network, accounts) {
deployer.deploy(B).then(function() {
return deployer.deploy(A, B.address);
});
};
return
Aussage bemerkte. Nachdem ich das hinzugefügt hatte, funktionierte es.Ich bevorzuge diese Syntax:
module.exports = function(deployer, network, accounts) {
deployer.then(async () => {
await deployer.deploy(A);
await deployer.deploy(B, A.address);
//...
});
};
da es viel besser lesbar ist, wenn Sie viele Verträge haben.
Siehe auch: https://github.com/trufflesuite/truffle/issues/501#issuecomment-373886205
Sanchit
Parthasarathy Ramanujam