Ich versuche, eine Transaktion mit ethereumjs
und zu signieren und zu pushen Infura
. Es scheint zu funktionieren und ich erhalte einen Transaktions-Hash zurück, aber die Transaktion ist auf Etherscan nicht sichtbar, und wenn ich versuche, den Hash durch einen Dienst wie diesen zu schieben, erhalte ich eine Fehlermeldung :
Error! Unable to broadcast Tx : {"jsonrpc":"2.0","error":{"code":-32602,"message":"Invalid RLP.","data":"RlpExpectedToBeList"},"id":1}
Dies ist der Code, den ich verwende:
var Web3 = require('web3');
var web3 = new Web3(new
Web3.providers.HttpProvider('https://ropsten.infura.io/v3/my_api_key'));
var util = require('ethereumjs-util');
var tx = require('ethereumjs-tx');
var rawTx = {
nonce: web3.toHex(1),
gasPrice: web3.toHex(20000000000),
gasLimit: web3.toHex(30000000000),
to:...
value: web3.toHex(1000000),
data: '0xc0de',
networkId: 3
};
var privateKey = '0x...';
var p = new Buffer.from(privateKey.substring(2), 'hex');
var transaction = new tx(rawTx);
transaction.sign(p);
console.log("tx hash = " + util.bufferToHex(transaction.hash(true)));
Was vermisse ich?
Es ist
let p = new Buffer(privateKey, "hex");
und natürlich nicht vergessen zu serialisieren:
var serializedTx = "0x" + transaction.serialize().toString('hex');
und die serialisierte Transaktion ist das, was Sie in web3.eth.sendRawTransaction eingeben.
Wirbel
Ropsten
aber sie scheint seit über einer Stunde im Wartestatus zu stecken, und ich kann sie auch nicht in den Adresstransaktionen sehen.https://ropsten.etherscan.io/tx/0xd5b53084af1b76d38848630b52add44e3aaaaa52bfa790285615f909329567ce
. Irgendeine Idee warum?Nikita Fuchs
Wirbel
Nikita Fuchs
Wirbel
Nikita Fuchs