Truffle: TypeError: Cannot read property 'bytecode' of undefined

Created on 11 Feb 2016  Â·  3Comments  Â·  Source: trufflesuite/truffle

I'm getting a very strange error here, the only thing I did is that I copied the example MetaCoin.sol to another file:

$ cd contracts
$ cp MetaCoin.sol t.sol
$ cd ..
truffle compile
Compiling ./contracts/MetaCoin.sol...
Compiling ./contracts/t.sol...
/usr/local/lib/node_modules/truffle/node_modules/solc/bin/soljson-latest.js:1
(function (exports, require, module, __filename, __dirname) { var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=function print(x){process["stdout"].write(x+"\n")};if(!Module["printErr"])Module["printErr"]=function printErr(x){process["stderr"].write(x+"\n")};var nodeFS=require("fs");var nodePath=require("path");Module["read"]=function read(filename,binary){filename=nodePath["normalize"](filename);var ret=nodeFS["readFileS

TypeError: Cannot read property 'bytecode' of undefined
  at /usr/local/lib/node_modules/truffle/lib/contracts.es6:171:45
  at /usr/local/lib/node_modules/truffle/node_modules/async/lib/async.js:356:13
  at Immediate.iterate [as _onImmediate] (/usr/local/lib/node_modules/truffle/node_modules/async/lib/async.js:262:13)
  at processImmediate [as _immediateCallback] (timers.js:383:17)
  at Function.module.exports.loopWhile (/usr/local/lib/node_modules/truffle/node_modules/deasync/index.js:64:21)
  at /usr/local/lib/node_modules/truffle/node_modules/deasync/index.js:36:18
  at runTask (/usr/local/lib/node_modules/truffle/truffle.es6:55:5)
  at Object.<anonymous> (/usr/local/lib/node_modules/truffle/truffle.es6:362:14)
  at Module._compile (module.js:413:34)
  at normalLoader (/usr/local/lib/node_modules/truffle/node_modules/babel-core/lib/api/register/node.js:199:5)
  at Object.require.extensions.(anonymous function) [as .es6] (/usr/local/lib/node_modules/truffle/node_modules/babel-core/lib/api/register/node.js:216:7)
  at Module.load (module.js:357:32)
  at Function.Module._load (module.js:314:12)
  at Function.Module.runMain (module.js:447:10)
  at Object.<anonymous> (/usr/local/lib/node_modules/truffle/node_modules/babel/lib/_babel-node.js:144:25)
  at Module._compile (module.js:413:34)
  at Object.Module._extensions..js (module.js:422:10)
  at Module.load (module.js:357:32)
  at Function.Module._load (module.js:314:12)
  at Function.Module.runMain (module.js:447:10)
  at startup (node.js:140:18)
  at node.js:1001:3

npm --version
3.7.2
Truffle v0.3.1
nodejs --version
v5.6.0

$ cat truffle.json 
{
  "build": {
    "index.html": "index.html",
    "app.js": [
      "javascripts/app.js"
    ],
    "app.css": [
      "stylesheets/app.css"
    ],
    "images/": "images/"
  },
  "deploy": [
    "MetaCoin", "t"
  ],
  "rpc": {
    "host": "localhost",
    "port": 8545
  }
}

$ sudo npm install -g truffle
npm WARN deprecated [email protected]: lodash@<3.0.0 is no longer maintained. Upgrade to lodash@^4.0.0
npm WARN deprecated [email protected]: this package has been reintegrated into npm and is now out of date with respect to npm
/usr/local/bin/truffle -> /usr/local/lib/node_modules/truffle/truffle.bash
/usr/local/bin/truffle-exec -> /usr/local/lib/node_modules/truffle/truffle-exec.bash
/usr/local/lib
└─┬ [email protected] 
  └─┬ [email protected]
    └── [email protected]  (git://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2)

npm WARN optional Skipping failed optional dependency /truffle/chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: [email protected]

Most helpful comment

After some time, I've figured that the problem is with the names: *.sol files must bear the same name as the contracts inside and the same names must be in truffle.json.

If possible, it would be nice to catch these problems with a more helpful msg :)

All 3 comments

After some time, I've figured that the problem is with the names: *.sol files must bear the same name as the contracts inside and the same names must be in truffle.json.

If possible, it would be nice to catch these problems with a more helpful msg :)

Oh, wow, thanks! Yes, this definitely needs a more helpful message...

Thanks guys! Looks like there's already another ticket for this: #60. I'm going to close this one, but know that this is tagged to be fixed in the next Truffle release.

Was this page helpful?
0 / 5 - 0 ratings