title: How to exec the two contracts one has the another address
body: <p>I deployed contracts <code>first</code> and <code>second</code> with this script.</p>
  <p>And I want to test this contract on <code>truffle console</code>.</p>
  <p>However error comes.</p>
  <p><code>first.sol</code></p>
  <pre><code>pragma solidity ^0.4.25;
  
  contract First{
      int public mydata;
      function GetDouble(int _data) public returns(int _output){
          mydata= _data * 2;
          return _data * 2;
      }
  }
  </code></pre>
  <p><code>second.sol</code></p>
  <pre><code>pragma solidity ^0.4.25;
  import &quot;./first.sol&quot;;
  contract Second{
      address firstAddress;
      int public _data;
      constructor(address _first) public{
          firstAddress = _first;
      }
      function SetData() public{
          First h = First(firstAddress);
          _data = h.GetDouble(21);
      }
  }
  </code></pre>
  <p><code>3_Custom.js</code></p>
  <pre><code>var hw = artifacts.require(&quot;First&quot;);
  var hw1 = artifacts.require(&quot;Second&quot;);
  module.exports = function(deployer){
      deployer.deploy(hw).then
      (function(){
          return deployer.deploy(hw1,hw.address);
      })
  };
  </code></pre>
  <p>Now I want to try this script on <code>truffle console</code>.</p>
  <pre><code>truffle(development)&gt; Second.address
  '0xf3b9059123028a9e77f8dd3fe53b64f2e5680b80'
  
  truffle(development)&gt; var s = Second.at(Second.address)
  
  truffle(development)&gt; s.SetData(2)
  Error: Invalid number of arguments to Solidity function
      at new Promise (&lt;anonymous&gt;)
      at /usr/local/lib/node_modules/truffle/build/webpack:/packages/truffle-contract/contract.js:204:1
      at SolidityFunction.execute (/usr/local/lib/node_modules/truffle/build/webpack:/~/web3/lib/web3/function.js:256:1)
      at SolidityFunction.sendTransaction (/usr/local/lib/node_modules/truffle/build/webpack:/~/web3/lib/web3/function.js:163:1)
      at SolidityFunction.toPayload (/usr/local/lib/node_modules/truffle/build/webpack:/~/web3/lib/web3/function.js:90:1)
      at SolidityFunction.validateArgs (/usr/local/lib/node_modules/truffle/build/webpack:/~/web3/lib/web3/function.js:74:1)
      at Object.InvalidNumberOfSolidityArgs (/usr/local/lib/node_modules/truffle/build/webpack:/~/web3/lib/web3/errors.js:25:1)
  </code></pre>
  <hr />
  <p>I use <code>s.setData()</code> , it returns</p>
  <pre><code>{ tx:
     '0x279aa09f95a4f96520d7d2dab2a0a3c923b7e17c393496be08ba52e89a376970',
    receipt:
     { transactionHash:
        '0x279aa09f95a4f96520d7d2dab2a0a3c923b7e17c393496be08ba52e89a376970',
       transactionIndex: 0,
       blockHash:
        '0x5d0cb4929292dba726af031736d39b8521669f2c8f470186da960ba30f61063a',
       blockNumber: 7,
       from: '0xf20bd17dccd1e442141f7b9d93f1c8f366fc7f94',
       to: '0x771939ec841204dd071fe5f3d35267461c4c2109',
       gasUsed: 25645,
       cumulativeGasUsed: 25645,
       contractAddress: null,
       logs: [],
       status: '0x1',
       logsBloom:
        '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' },
    logs: [] }
  </code></pre>