Web3js
TypeError:EthereumTransaction 不是建構子
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)
發生的錯誤是。
TypeError: EthereumTransaction is not a constructor
發生這種情況是因為
ethereumjs-tx
庫已更改其語法。這是您的程式碼的工作版本:
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)
試試這個
var transaction = new TX(rawTransaction);
而不是這個
var transaction = new EthereumTransaction(rawTransaction)