14

I am using testrpc. While running truffle migrate I get the following error:

/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).

My truffle.js as the following content

// 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
    }
  }
}

What am I missing? Would appreciate any help I get. Thanks

| improve this question | |
20

This seems to occur if you're trying to deploy contract A that depends on contract B before contract B has actually finished deploying.

You probably have something like this:

module.exports = function(deployer, network, accounts) {
  deployer.deploy(B);
  deployer.deploy(A, B.address);
};

It's essentially a race condition because B.address is probably not ready in time for the second deployer.deploy call. So use the promise that deploy returns like this:

module.exports = function(deployer, network, accounts) {
  deployer.deploy(B).then(function() {
    return deployer.deploy(A, B.address);
  });
};
| improve this answer | |
4

I prefer this syntax:

module.exports = function(deployer, network, accounts) {

    deployer.then(async () => {
        await deployer.deploy(A);
        await deployer.deploy(B, A.address);
        //...
    });
};

since it's way more readable when you have lots of contracts.

See also: https://github.com/trufflesuite/truffle/issues/501#issuecomment-373886205

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.