sendRawTransaction erscheint nicht / wird nicht an das Netzwerk übermittelt

Ich bin neu bei Javascript, also ertrage es mit mir. Ich habe web3.js erfolgreich in einer HTML-Datei zum Laufen gebracht, wobei getBalances so funktioniert, wie es sollte. (Ich möchte Node.js vorerst nicht verwenden)

Aber jetzt stecke ich beim Senden einer Rohtransaktion fest. Die Konsole sagt mir, dass ein Transaktions-Hash erstellt wird, aber wenn ich auf Etherscan suche, wird die Transaktion nicht angezeigt. Auch wird keine ETH zwischen der 'From'- und der 'To'-Adresse übertragen.

Mein Code in der HTML-Datei:

      const gasLimitInHex = web3.toHex(30000)

      const valueInWei = web3.toWei('0.05', 'ether')
      const valueWeiInHex = web3.toHex(valueInWei)

      const rawTx = {
        gasLimit: gasLimitInHex,
        to: receiveEthAddress,
        value: valueWeiInHex
      }

      const tx = new EthJS.Tx(rawTx)
      tx.sign(privateKey)

      var serializedTx = tx.serialize()

      console.log(serializedTx.toString('hex'))

      web3.eth.sendRawTransaction('0x' + serializedTx.toString('hex'), function(err, hash) {
        if (!err) {
          console.log(hash)
        } else {
          console.log(err)
        }
      })

Der serialisierte tx:f866808082753094e1677d96bb82668bb188ec71498db5c0c0c4830e87b1a2bc2ec50000801ba0754d70a1dcbca6a7486fafeed8e63c8738b401af562697c2d97c990c4ac3d543a02a0664aeaa900c4d1d8ad94c3c69b76bcaa5f5c3e8307c4d63c86d60b70f4d7b

Der Transaktions-Hash, den web3.js zurückgibt:0x9b89dad10e235d9bbd4b48f6a9768b557861281645b6d0702115e4a7141b0f41

FYI Ich verwende die myetherwallet API ( https://api.myetherapi.com/eth )

Aus Ihrem Code geht hervor, dass Nonce fehlt. Sie können es erhalten, indem Sie es tunvar nonce = web3.eth.getTransactionCount(0xaddress);
Danke. Du hast Recht, die Nonce fehlte. Ich habe auch festgestellt, dass gasPrice auch benötigt wird, damit die rawTransaction durchlaufen wird.

Antworten (1)

Danke an @Ismael für den Hinweis auf die richtige Richtung.

Sowohl der Nonce als auch der GasPrice fehlten.

Für einmal:

var nonce = web3.eth.getTransactionCount(0xaddress);

Für gasPreis:

var gasPriceInWei = web3.toWei('10', 'gwei');

Sowohl Nonce als auch GasPrice müssen in Hex umgewandelt werden.