title: Smart contract method is not a function in web3
body: <p>I am trying to follow an older <a href="https://www.youtube.com/watch?v=hcTPjpPvas8&amp;t=904s" rel="nofollow noreferrer">tutorial</a> on web3, but am getting errors that I believe are due Solidity being updated. I have the following code shown below</p>
  
  <pre><code>var express = require("express"),
      Web3 = require("web3"),
      web3;    
  if (typeof web3 !== 'undefined') {
    web3 = new Web3(web3.currentProvider);
  } else {
    // set the provider you want from Web3.providers
    web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
  }
  
  web3.eth.defaultAccount = web3.eth.accounts[0];
  
  //define contract variable using ABI from compiled Remix tab.
  var myContract = new web3.eth.Contract([abi_data]);
  
  myContract.options.address = 'contract_address';
  
  myContract.methods.totalSupply(function(err,res){
      if(!err){
          console.log(res);
      } else {
          console.log(err);
      }
  })
  </code></pre>
  
  <p>where abi_data is my contract's abi data, contract_address is my contract's actual address in the Roptsen test network, and where totalSupply() is the method in my solidity smart contract on the Ropsten test network that returns the total supply of the token referenced in the contract. When testing this with <code>node app.js</code> to see if this logs properly, this error is returned...</p>
  
  <pre><code>/home/ubuntu/workspace/node_modules/web3-eth-contract/src/index.js:693
      throw errors.InvalidNumberOfParams(args.length, this.method.inputs.length, this.method.name);
      ^
  
  Error: Invalid number of parameters for "totalSupply". Got 1 expected 0!
      at Object.InvalidNumberOfParams (/home/ubuntu/workspace/node_modules/web3-core-helpers/src/errors.js:32:16)
      at Object._createTxObject (/home/ubuntu/workspace/node_modules/web3-eth-contract/src/index.js:693:22)
      at Object.&lt;anonymous&gt; (/home/ubuntu/workspace/client/app.js:290:25)
      at Module._compile (module.js:570:32)
      at Object.Module._extensions..js (module.js:579:10)
      at Module.load (module.js:487:32)
      at tryModuleLoad (module.js:446:12)
      at Function.Module._load (module.js:438:3)
      at Module.runMain (module.js:604:10)
      at run (bootstrap_node.js:389:7)
      at startup (bootstrap_node.js:149:9)
  </code></pre>
  
  <p>And totalSupply is defined in Soldiity as follows...</p>
  
  <pre><code>function totalSupply() constant returns (uint256 totalSupply){
      return _totalSupply;
  }
  </code></pre>
  
  <p>Using Adam's fix, I still get the following error...</p>
  
  <pre><code>Error: Invalid JSON RPC response: ""
  at Object.InvalidResponse (/home/ubuntu/workspace/node_modules/web3-core-helpers/src/errors.js:42:16)
  at XMLHttpRequest.request.onreadystatechange (/home/ubuntu/workspace/node_modules/web3-providers-http/src/index.js:73:32)
  at XMLHttpRequestEventTarget.dispatchEvent (/home/ubuntu/workspace/node_modules/xhr2/lib/xhr2.js:64:18)
  at XMLHttpRequest._setReadyState (/home/ubuntu/workspace/node_modules/xhr2/lib/xhr2.js:354:12)
  at XMLHttpRequest._onHttpRequestError (/home/ubuntu/workspace/node_modules/xhr2/lib/xhr2.js:544:12)
  at ClientRequest.&lt;anonymous&gt; (/home/ubuntu/workspace/node_modules/xhr2/lib/xhr2.js:414:24)
  at emitOne (events.js:96:13)
  at ClientRequest.emit (events.js:188:7)
  at Socket.socketErrorListener (_http_client.js:310:9)
  at emitOne (events.js:96:13)
  at Socket.emit (events.js:188:7)
  at emitErrorNT (net.js:1277:8)
  at _combinedTickCallback (internal/process/next_tick.js:80:11)
  at process._tickCallback (internal/process/next_tick.js:104:9)
  </code></pre>