title: Unhandled rejection Error: Invalid JSON RPC response: ""
body: <p>I am trying to call a method on my ERC20 token contract. I am connecting to '<a href="https://rinkeby.infura.io/" rel="noreferrer">https://rinkeby.infura.io/</a>' httpProvider. I can <strong>call()</strong> constant methods but when i want to change the state of the contract by calling <strong>send()</strong> function i get this mentioned error. If you think posting the ABI JSON or the Solidity contract helps, i can provide it as well. I thought my issue is purely <strong>web3</strong> related. I think i need to sign transactions (logically) but the web3 documentation doesn't mention anything. <a href="http://web3js.readthedocs.io/en/1.0/web3-eth-contract.html#methods-mymethod-send" rel="noreferrer">http://web3js.readthedocs.io/en/1.0/web3-eth-contract.html#methods-mymethod-send</a></p>
  
  <p>This is the error i've been getting:</p>
  
  <pre><code>Unhandled rejection Error: Invalid JSON RPC response: ""
  at Object.InvalidResponse (/opt/backend/node_modules/web3-core-helpers/src/errors.js:42:16)
  at XMLHttpRequest.request.onreadystatechange (/opt/backend/node_modules/web3-providers-http/src/index.js:60:32)
  at XMLHttpRequestEventTarget.dispatchEvent (/opt/backend/node_modules/xhr2/lib/xhr2.js:64:18)
  at XMLHttpRequest._setReadyState (/opt/backend/node_modules/xhr2/lib/xhr2.js:354:12)
  at XMLHttpRequest._onHttpResponseEnd (/opt/backend/node_modules/xhr2/lib/xhr2.js:509:12)
  at IncomingMessage.&lt;anonymous&gt; (/opt/backend/node_modules/xhr2/lib/xhr2.js:469:24)
  at emitNone (events.js:111:20)
  at IncomingMessage.emit (events.js:208:7)
  at endReadableNT (_stream_readable.js:1055:12)
  at _combinedTickCallback (internal/process/next_tick.js:138:11)
  at process._tickCallback (internal/process/next_tick.js:180:9)
  From previous event:
  at PromiEvent (/opt/backend/node_modules/web3-core-promievent/src/index.js:35:24)
  at send (/opt/backend/node_modules/web3-core-method/src/index.js:446:21)
  at Object._executeMethod (/opt/backend/node_modules/web3-eth-contract/src/index.js:890:24)
  at Object.currencyToken.sendSignUpBonousTokens (/opt/backend/server/common/token/currency-token.js:86:56)
  at &lt;anonymous&gt;
  </code></pre>
  
  <p>From calling this method:</p>
  
  <pre><code>const Web3 = require('web3');
  const Tx = require('ethereumjs-tx');
  const ABIjson = require('./ABI.json');
  
  const web3 = new Web3(new Web3.providers.HttpProvider('https://rinkeby.infura.io/my_access_token_here'));
  const contractAddress = '0x31cF32fa91286168B1A896Db4F99d106246932Bc';
  const ownerAddress = '0x44Ba8c5a905D634c485dE6f8fD43df9682AfD342';
  
  const token = new web3.eth.Contract(ABIjson, contractAddress);
  try
  {
      const gasAmount = await token.methods.transfer(company.walletAddress, 10000).estimateGas({from: ownerAddress});
  
      token.methods.transfer(company.walletAddress, 550).send(
        {
          from: ownerAddress,
          gasPrice: '20000000000',
          gas: gasAmount
        })
        .then(function(receipt)
        {
          console.log(receipt);
        });
  }
  catch (error)
  {
      console.error(error);
  }
  </code></pre>
  
  <p>Here is the ABI snippet for the method:</p>
  
  <pre><code>{  
  "constant":false,
  "inputs":[  
    {  
      "name":"_to",
      "type":"address"
    },
    {  
      "name":"_value",
      "type":"uint256"
    }
  ],
  "name":"transfer",
  "outputs":[  
    {  
      "name":"success",
      "type":"bool"
    }
  ],
  "payable":true,
  "stateMutability":"payable",
  "type":"function"
  },
  </code></pre>