Das Erhalten von TX ist nicht definiert, wenn versucht wird, eine signierte Transaktion zu senden [geschlossen]

Ich versuche zu lernen, wie man eine signierte Transaktion mit web3 1.0 und Infura.io sendet. Ich habe node.js lokal zum Testen ausgeführt. Ich kann erfolgreich eine Adresse erstellen und Guthaben prüfen, bekomme aber TX nicht definiert, wenn ich sendSignedTransaction ausführe.

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);

});

Ich bekomme den folgenden Fehler -

(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.

Ich bin wirklich neu in diesem Bereich und versuche zu lernen, bin mir aber nicht sicher, wo ich falsch liege.

Abstimmung zum Schließen als Off-Topic. Sie haben TXetwas namens eingegeben, aber nie definiert TX. Dies könnte bei Stack Overflow themenbezogener sein. (Hinweis: TXwar wahrscheinlich ein Tippfehler für Tx, aber möglicherweise fehlt Ihnen auch eine Bibliothek.)

Antworten (1)

Sie vermissen höchstwahrscheinlich das ethereumjs-txKnotenmodul. Nachdem Sie npm install ethereumjs-tx --savein Ihrem Projekt sind, fügen Sie dies am Anfang Ihres Skripts hinzu:

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

Ein weiterer, unabhängiger möglicher Fehler ist, dass das to: "To Address",sein sollteto: "Contract's Address",

Super danke, das behebt mein Problem. Ich weiß die Hilfe zu schätzen! Ich bekomme jedoch ein anderes Problem, das nichts damit zu tun hat, es besagt, dass die Länge meines privaten Schlüssels ungültig ist. Aber ich werde untersuchen, was ich dort falsch mache. Prost Kumpel!