No se puede crear una transacción

Estoy tratando de crear una transacción en la red de prueba de bitcoin , usando bitcore :

Mensaje de error :

SyntaxError: JSON.parse: carácter inesperado en la línea 1 columna 1 de los datos JSON

Aquí está mi 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')

<Transaction: 010000000122195e38df0ff2ec2b78d41a3857aa2125bf923a829461a774e7072fd99a0d0c0000000000ffffffff02204e0000000000001976a9142fc320597ba67a66167721bc9c36d987e03c225b88ac10cd0e00000000001976a91412820fdb8340e5198b3c31de5688faa7927b0d7188ac00000000>

transaction.serialize()
010000000122195e38df0ff2ec2b78d41a3857aa2125bf923a829461a774e7072fd99a0d0c0000000000ffffffff02204e0000000000001976a9142fc320597ba67a66167721bc9c36d987e03c225b88ac10cd0e00000000001976a91412820fdb8340e5198b3c31de5688faa7927b0d7188ac00000000

>> var Insight = require('bitcore-explorers')
[object Object]
>> var client = new Insight.Insight()
[object Object]
>> client.broadcast(transaction, function(err, txId) { console.log('Id:', txId, err);})
undefined
Id: undefined SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

Cuando intento transmitir esta transacción usando BlockCypher , el mensaje de error es:

Error al validar la transacción: script rechazado para la entrada 0 que hace referencia a 0c0d9ad92f07e774a76194823a92bf2521aa57381ad4782becf20fdf385e1922 en 0.

¡Cualquier ayuda es muy apreciada!

Revisé tu JSON y es válido. ¿Cuál es el valor de txId?
¿Se le permite establecer el cambio de dirección después de firmar? El ejemplo que dan tiene firma después de configurar el cambio de dirección. github.com/bitpay/bitcore-explorers/blob/… Además, miré la transacción deserializada en blockchain.info/decode-tx y no está firmada.
txIdse devuelve undefined, y en su lugar, un error. También intenté firmar más tarde, todavía no funciona. La clave privada en WIF también se pega arriba. ¿Podrían intentar ejecutar el código anterior en el patio de recreo de bitcore, solo tomaría unos segundos?
@Kang Lo siento, no noté ese enlace antes. ¿No deberías estar pasando una clave privada a sign()? github.com/bitpay/bitcore/blob/…
Pero eso es, la clave privada en WIF..
@Kang, por lo general, la clave privada se proporciona como su valor SEC (hexadecimal), en cosas como pybitcointools . De hecho, las únicas aplicaciones que conozco que usan WIF son bitcoincore. Además, es posible que un WIF comprimido no sea aceptable.
Ambos de estos no funcionan:"privateKeyWIF":"91cwRvVzogxM7s4JJzCZZVzTfBfQv9Mjq2nSD4z12kq5q2mwzns","privateKeyHex":"0497427ad1b6177fe950758f10151ba38a6b38d44577ba45fb06423143bb55a2"
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON datasugiere que sus datos JSON deben ser una matriz,[ { } ]
Eso pensé, pero incluso eso no funciona. ¿Podrías probarlo en Bitcore Playground? Solo digo porque probé todas las permutaciones que pude imaginar.

Respuestas (1)

Creo que puedes agregar 'alrededor de tu JSON, para hacer: .from('{"address":"..."}')para crear una cadena con tu json dentro