Web3 Error: Transaction has been reverted by the EVM:

Viewed 25273

Im fairly new to using Web3.

I am trying to test out a function that makes purchases for smart contracts (ERC20 coins). I have tested this code to send Ether from one wallet to another and it succeeded. Now i get this error whenever i try to interact with a smart contract (send a signed transactions to purchase coin) :

Error: Transaction has been reverted by the EVM:

And this is how it appears on etherscan rinkeby

enter image description here

This is my code

  var rawTx = {
    nonce : nxn,
    gasPrice: web3.utils.toHex(web3.utils.toWei('3000', 'gwei')),
    gasLimit: '0x5208',
    to: '0x40d3b2f06f198d2b789b823cdbecd1db78090d74',
    value: web3.utils.toHex(web3.utils.toWei('0.002', "ether")),
    data : '0x',
    
  }

  var tx = new Tx(rawTx,{chain:'rinkeby', hardfork: 'petersburg'});
  tx.sign(privateKey);

  var serializedTx = tx.serialize();


  await web3.eth.sendSignedTransaction('0x' + serializedTx.toString('hex'))
  .on('receipt', console.log);
2 Answers

It means smart contract did revert() for your transaction, usually by failing require() line. Other reasons include trying to make a payable transaction to a smart contract that does not accept payments.

Without the smart contract source code it is not possible to tell what causes the revert.

If you are doing the Dapp University Tutorial i think the problem is in the contract with the initialSupply. See if the constructor takes any parameters.

Related