sendRawTransaction no aparece / se envía a la red

Soy nuevo en Javascript, así que tengan paciencia conmigo. Conseguí que web3.js funcionara con éxito en un archivo HTML, con getBalances funcionando como debería. (No quiero usar Node.js por ahora)

Sin embargo, ahora estoy atascado enviando una transacción sin procesar. La consola me dice que se crea un hash de transacción, pero cuando busco en Etherscan no aparece la transacción. Además, no se transfiere ETH entre la dirección 'desde' y 'a'.

Mi código en el archivo HTML:

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

El tx serializado:f866808082753094e1677d96bb82668bb188ec71498db5c0c0c4830e87b1a2bc2ec50000801ba0754d70a1dcbca6a7486fafeed8e63c8738b401af562697c2d97c990c4ac3d543a02a0664aeaa900c4d1d8ad94c3c69b76bcaa5f5c3e8307c4d63c86d60b70f4d7b

El hash de transacción que devuelve web3.js:0x9b89dad10e235d9bbd4b48f6a9768b557861281645b6d0702115e4a7141b0f41

Para su información, estoy usando la API de myetherwallet ( https://api.myetherapi.com/eth )

A partir de su código parece que falta el nonce. Puedes obtenerlo haciendovar nonce = web3.eth.getTransactionCount(0xaddress);
Gracias. Tienes razón, faltaba el nonce. También me di cuenta de que también se necesita gasPrice para que se lleve a cabo la transacción sin procesar.

Respuestas (1)

Gracias a @Ismael por señalarme en la dirección correcta.

Faltaban tanto el nonce como el gasPrice.

Por ahora:

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

Para gasPrecio:

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

Tanto nonce como gasPrice deben convertirse a hexadecimal.