Web3js

嘗試發送簽名交易時未定義獲取 TX

  • October 28, 2018

我正在嘗試學習如何使用 web3 1.0 和 Infura.io 發送簽名交易。我在本地執行 node.js 進行測試。我可以成功創建地址並檢查餘額,但是在執行 sendSignedTransaction 時未定義 TX。

const Web3 = require('web3');

web3 = new Web3(new 
Web3.providers.HttpProvider("https://mainnet.infura.io/v3/My API Key"));

// Get Contract ABI
var abi = JSON.parse('[{"MY ABI"}]')

// Define Variable for Contract ABI
var AK = new web3.eth.Contract(abi);

// Buffer PK
var privateKey = new Buffer('Private Key')

// create transaction - to address, amount
var data = AK.methods.transfer("To Address", 10).encodeABI();

// object to hold the transaction data From Address
web3.eth.getTransactionCount('From Address').then(count => {

var txData = {

nonce: web3.utils.toHex(count),

gasLimit: web3.utils.toHex(25000),

gasPrice: web3.utils.toHex(web3.eth.gasPrice),

to: "To Address",

from: "From Address",

data: data

}

var transaction = new TX(txData);

transaction.sign(privateKey);

var serialisedTransaction = transaction.serialize().toString('hex');

web3.eth.sendSignedTransaction('0x' + serialisedTransaction);

});

我收到以下錯誤 -

(node:16077) UnhandledPromiseRejectionWarning: ReferenceError: TX is not defined
at web3.eth.getTransactionCount.then.count 
(/Users/ryan/Documents/KapAction/public/send.js:39:19)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:189:7)
(node:16077) UnhandledPromiseRejectionWarning: Unhandled promise 
rejection. This error originated either by throwing inside of an async 
function without a catch block, or by rejecting a promise which was not 
handled with .catch(). (rejection id: 1)
(node:16077) [DEP0018] DeprecationWarning: Unhandled promise rejections 
are deprecated. In the future, promise rejections that are not handled 
will terminate the Node.js process with a non-zero exit code.

我對此真的很陌生,並且正在努力學習,但不確定我哪裡出錯了。

您很可能會錯過ethereumjs-tx節點模組。在您npm install ethereumjs-tx --save的項目中,將其添加到腳本的開頭:

const TX = require("ethereumjs-tx");

另一個不相關的可能錯誤to: "To Address",to: "Contract's Address",

引用自:https://ethereum.stackexchange.com/questions/61328