API de Bitcore Insight: no puedo crear y transmitir transacciones

He intentado crear transacciones y transmitir transacciones, pero no puedo hacer esto.

Déjame compartir contigo el código.

var transaction = new bitcore.Transaction()
    .from({"address":"msxGdsTJJYu7YrmkV4sbHNK8Z21pHFZ2gX","txid":"0c0d9ad92f07e774a76194823a92bf2521aa57381ad4782becf20fdf385e1922","vout":0,"scriptPubKey":"76a914886b382436985b195d1dfcdb00c722c1f2fcd0ea88ac","amount":0.01})
    .to('mjsVogqLetdUjT9raJY6WgYmy3tifJ3DJz', 20000)    .sign('0497427ad1b6177fe950758f10151ba38a6b38d44577ba45fb06423143bb55a2')
    .change('mhCpGNNHQmu4P9pUZcCmgXkxbYxys5pKBw');

var txSerialized = transaction.serialize(true);
console.log(txSerialized);
var Insight = require('bitcore-explorers');
var client = new Insight.Insight();
client.broadcast(txSerialized, function(err, txId) { console.log('Id:', txId, err);})

Obtener debajo de la salida:

010000000122195e38df0ff2ec2b78d41a3857aa2125bf923a829461a774e7072fd99a0d0c0000000000ffffffff02204e0000000000001976a9142fc320597ba67a66167721bc9c36d987e03c225b88ac806d0d00000000001976a91412820fdb8340e5198b3c31de5688faa7927b0d7188ac00000000
Id: undefined Missing inputs. Code:-25

He probado muchas cosas pero no soy capaz de solucionarlo.

¿Puede darme la solución o la demostración adecuada con una descripción completa?

Respuestas (1)

Su transacción no está firmada. Debe llamar .signal último, ya que cambiar la transacción después de firmar invalidará las firmas y, por lo tanto, bitcore las eliminará. En su lugar, deberías estar haciendo:

var transaction = new bitcore.Transaction()
.from({"address":"msxGdsTJJYu7YrmkV4sbHNK8Z21pHFZ2gX","txid":"0c0d9ad92f07e774a76194823a92bf2521aa57381ad4782becf20fdf385e1922","vout":0,"scriptPubKey":"76a914886b382436985b195d1dfcdb00c722c1f2fcd0ea88ac","amount":0.01})
.to('mjsVogqLetdUjT9raJY6WgYmy3tifJ3DJz', 20000)
.change('mhCpGNNHQmu4P9pUZcCmgXkxbYxys5pKBw');
.sign('0497427ad1b6177fe950758f10151ba38a6b38d44577ba45fb06423143bb55a2')
Obteniendo el mismo error después de agregar un signo.