TransWikia.com

TypeError: EthereumTransaction is not a constructor

Ethereum Asked by Sreesankar G Warrier on December 18, 2021

var EthereumTransaction = require("ethereumjs-tx")

var Web3 = require('web3')

var web3 = new Web3('http://127.0.0.1:7545')

//Setting Receiving and Sending Address

var sendingAddress = acc1

var receivingAddress = acc2

//Checking the balance of each account in ether

web3.eth.getBalance(sendingAddress).then(console.log(web3.utils.fromWei('1', 'ether')))

web3.eth.getBalance(receivingAddress).then(console.log(web3.utils.fromWei('1', 'ether')))

//Creating a transaction

var rawTransaction ={
    nounce:0,
    to:receivingAddress,
    gasPrice:20000000,
    gasLimit:30000,
    value:100,
    data:""
}

//Sign the Transaction

var privateKey = 'private key goes here'

var senderPrivateKeyHex = new Buffer(privateKey,'hex')

var transaction = new EthereumTransaction(rawTransaction)

transaction.sign(senderPrivateKeyHex)

//Send transaction to the network

var serializedTransaction = transaction.serialize()

web3.eth.sendSignedTransaction(serializedTransaction)

Error Occurred is.

TypeError: EthereumTransaction is not a constructor

4 Answers

This is happening because ethereumjs-tx library has changed its syntax.

This is the working version of your code:

const EthereumTx = require('ethereumjs-tx').Transaction

var Web3 = require('web3')

var web3 = new Web3('http://127.0.0.1:7545')

//Setting Receiving and Sending Address

var sendingAddress = 'ADD SENDING ADDRESS HERE'

var receivingAddress = 'ADD RECEIVING ADDRESS HERE'

//Checking the balance of each account in ether

web3.eth.getBalance(sendingAddress).then(console.log(web3.utils.fromWei('1', 'ether')))

web3.eth.getBalance(receivingAddress).then(console.log(web3.utils.fromWei('1', 'ether')))

//Creating a transaction

var rawTransaction ={
    nonce: web3.utils.toHex(0),
    to: receivingAddress,
    gasPrice: web3.utils.toHex(20000000),
    gasLimit: web3.utils.toHex(30000),
    value: web3.utils.toHex(100),
    data: web3.utils.toHex("")
}

//Sign the Transaction

var privateKey = 'private key goes here'

var senderPrivateKeyHex = new Buffer.from(privateKey,'hex')

var transaction = new EthereumTx(rawTransaction)

transaction.sign(senderPrivateKeyHex)

//Send transaction to the network

var serializedTransaction = transaction.serialize()

web3.eth.sendSignedTransaction(serializedTransaction)

Answered by Rael Gugelmin Cunha on December 18, 2021

You are using version 2.1.2 of the ethereumjs-tx library, but you want to use an earlier version.

If you install version 1.3.7 you should be alright. Try running this from the command line and see if your error goes away.

npm install [email protected] --save

For version 2 and onwards the syntax to initialize the library has changed to require('ethereumjs-tx').Transaction. You can see an example here

Answered by lhay86 on December 18, 2021

var TX = require('ethereumjs-tx').Transaction will remove this error.

Answered by Sreesankar G Warrier on December 18, 2021

Try this

   var transaction = new TX(rawTransaction); 

instead of this

  var transaction = new EthereumTransaction(rawTransaction)

Answered by CHARFEDDINE Amine on December 18, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP