So I've customized this handleTransfer function from truffle tutorial,

I receive an error

Error: [ethjs-rpc] rpc error with payload 
["0xf86f8...blablabla"],"method":"eth_sendRawTransaction"} Error: VM Exception 
while processing transaction: revert

I don't know why. Does someone has an idea.

    handleTransfer: function(event) {

    var amount = parseInt($('#TTTransferAmount').val());
    var toAddress = $('#TTTransferAddress').val();
    var price = parseInt($('#TTPrice').val())

    console.log('Transfer ' + amount + ' TT to ' + toAddress);

    var tutorialTokenInstance;

    web3.eth.getAccounts(function(error, accounts) {
      if (error) {

      var account = accounts[0];

      App.contracts.TutorialToken.deployed().then(function(instance) {
        tutorialTokenInstance = instance;
        var value = web3.toWei(price);
        var owner = tutorialTokenInstance.owner.call().then(console.log);

        return tutorialTokenInstance.sendTransaction({
          from: account,
          to: owner,
          value: value
    return tutorialTokenInstance.transfer(account, amount, {from: owner});
      }).then(function(result) {
        alert('Transfer Successful!');
        return App.getBalances();
      }).catch(function(err) {

If you need some more info let me know

Here comes the contract

pragma solidity ^0.4.17;

import 'zeppelin-solidity/contracts/token/StandardToken.sol';
import 'zeppelin-solidity/contracts/ownership/Ownable.sol';

    contract TutorialToken is StandardToken, Ownable {

        string public name = 'TutorialToken';
        string public symbol = 'TT';
        uint8 public decimals = 2;
        uint public INITIAL_SUPPLY = 12000;

        function TutorialToken() public {
        totalSupply = INITIAL_SUPPLY;
        balances[msg.sender] = INITIAL_SUPPLY;
        owner = msg.sender;

  • The revert is thrown from the contract. You need to post your contract code. Commented Jan 18, 2018 at 20:02
  • Ok give me 2 secondes, ok done !
    – Ilan
    Commented Jan 18, 2018 at 20:02
  • Does it print the owner address before the error occurs?
    – willjgriff
    Commented Jan 18, 2018 at 23:00
  • Hey sorry for the delay, yes it does
    – Ilan
    Commented Jan 22, 2018 at 13:26
  • For me the issue was due to lack of gas.
    – Volatil3
    Commented Mar 8, 2018 at 12:12

2 Answers 2


I should have used web.eth and not an instance of the contract.


I got the same error with a similar scenario in truffle, in which I want to set the address from a deployed contract, like the following:


In the beginning, I put the _address directly with only numbers like 0xb2...

Then I tried to test the same code in Remix, which throw an error "syntax error unexpected token x in json at position 2", so after another round of google I know the _address should be surrounded with quotes, like:


That works in my case. Hope it help you.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.