title: Web3j Transfer.sendFunds() returns Error "insufficient funds for gas * price + value"
body: <p>When using the web3j lib for blockchain transaction in my private test blockchain I'm currently running into the titled response error: <strong>*insufficient funds for gas * price + value*</strong></p>
  
  <p>The account from which I want to transfer some ether has a balance of 10000 ether. The <strong>gas price</strong> I logged out has a value of <strong>18000000000</strong> as BigInt (it's WEI?) and the <strong>gas limit</strong> is the default used from the web3j has a value of <strong>21000</strong>. </p>
  
  <p>So the question is why I getting the transaction not working?I want to transfer 10 ether for example:</p>
  
  <pre><code>TransactionReceipt transactionReceipt = Transfer.sendFunds(web3, credentials, toAccount, BigDecimal.valueOf(10.0), Convert.Unit.ETHER).send();
  </code></pre>
  
  <p><strong>More details</strong></p>
  
  <p>the genesis file looks like this:</p>
  
  <pre><code>{
    "config": {
        "chainId": 9999,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0,
        "byzantiumBlock": 0
     },
     "difficulty": "400",
     "gasLimit": "2100000",
     "alloc": {
        "0x9b6301bf2cfe11066dbd641f91a2b82e0783130e": { 
            "balance": "100000000000000000000000" 
        }
     }
  }
  </code></pre>
  
  <p>The code looks like this:</p>
  
  <pre><code>// create new account 
  Admin admin = Admin.build(new HttpService());
  NewAccountIdentifier newAccount = admin.personalNewAccount("PASSWORD").send();
  
  // get current created account
  Web3j web3 = Web3.build(new HttpService());
  EthAccounts accounts = web3.ethAccounts().send();
  String lastAccount = Iterables.getLast(accounts.getAccounts());
  // get creadentials for the first account having some ether
  String firstAccount = web3.ethAccounts().send().getAccounts().get(0);
  Credentials credentials = Credentials.create(firstAccount);
  
  // get current balance for first account
  EthGetBalance balance = admin.ethGetBalance(firstAccount, DefaultBlockParameterName.LATEST).send();
  BigDecimal balanceVaue = Convert.fromWei(balance.getBalance().toString(), Convert.Unit.ETHER);
  
  // create transaction to give the new created account some ether from the first one
  // log some stuff
  System.out.println("Account: " + firstAccount);
  System.out.println("Account balance: " + balanceVaue);
  System.out.println("Gas Price admin.ethGasPrice() in Ether: " + Convert.fromWei(gasPrice.toString(), Convert.Unit.ETHER));
  System.out.println("Transfer Gas Limit in Ether: " + Convert.fromWei(Transfer.GAS_LIMIT.toString(), Convert.Unit.ETHER));
  System.out.println("Transfer Gas Price in Ether: " + Convert.fromWei(Transfer.GAS_PRICE.toString(), Convert.Unit.ETHER));
  
  TransactionReceipt transactionReceipt = Transfer.sendFunds(web3, credentials, lastAccount, BigDecimal.valueOf(10.0), Convert.Unit.ETHER).send();
  String transactionHash = transactionReceipt.getTransactionHash();
  </code></pre>
  
  <p>This causes the above transaction error: <strong>insufficient funds for gas * price + value</strong></p>
  
  <p>Here is the logging output:</p>
  
  <pre><code>Account: 0x9b6301bf2cfe11066dbd641f91a2b82e0783130e
  Account balance: 100000
  Gas Price admin.ethGasPrice() in Ether: 1.8E-8
  Transfer Gas Limit in Ether: 2.1E-14
  Transfer Gas Price in Ether: 2.2E-8
  Funds transfer triggered ...
  </code></pre>