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
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
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP