Me golpeé la cabeza contra la mesa tratando de enviar una transacción sin procesar y cada vez obtenía el mismo error bad-txns-nonstandard-inputs
.
Obtener transacciones no gastadas
bitcoin-cli listunspent
[
{
"txid": "txid_number_1",
"vout": 1,
"address": "address_1",
"redeemScript": "redeemScript_1",
"scriptPubKey": "scriptPubKey_1",
"amount": 0.00024972,
"confirmations": 31,
"spendable": true,
"solvable": true,
"safe": true
}
]
Cree una transacción sin procesar con tx_id y vout tomados arriba
bitcoin-cli createrawtransaction '[{"txid":"txid_number_1","vout":1}]' '{"address_to_sent":0.00002000}'
tx_id_as_hexstring =
02000000016affa8a874987f66be3ab4791b57042cbf0912088352ba0e3931b7b8b8f374c80100000000ffffffff01d0070000000000001976a9147c99343bb9cba8699e7f7b4f5552357e477dc76188ac00000000
Firmar transacción sin procesar
bitcoin-cli signrawtransaction tx_id_as_hexstring
Enviar transacción sin procesar
bitcoin-cli sendrawtransaction tx_id_as_hexstring
error code: -26
error message:
64: bad-txns-nonstandard-inputs
Traté de crear la misma transacción con coinb.in , pero el resultado es el mismo.
¿Qué estoy haciendo mal?
bitcoin-cli decoderawtransaction tx_id_as_hexstring
devoluciones
{
"txid": "txid_number_2",
"hash": "txid_number_2",
"version": 2,
"size": 85,
"vsize": 85,
"locktime": 0,
"vin": [
{
"txid": "txid_number_3",
"vout": 1,
"scriptSig": {
"asm": "",
"hex": ""
},
"sequence": 4294967295
}
],
"vout": [
{
"value": 0.00002000,
"n": 0,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 7c99343bb9cba8699e7f7b4f5552357e477dc761 OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a9147c99343bb9cba8699e7f7b4f5552357e477dc76188ac",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"address_to_sent"
]
}
}
]
}
Su transacción no está siendo firmada.
En primer lugar, la cadena hexadecimal que createrawtransaction
te da no es el txid, es la transacción en sí. Esa transacción no se almacena en su billetera.
Cuando se lo pase a signrawtransaction
, la transacción sin procesar se firmará y se le devolverá (será lo que se encuentra debajo del hex
campo en el objeto devuelto. Una vez más, esta transacción no se almacena en su billetera. Esa transacción firmada es lo que le pasa a sendrawtransaction
, no lo que createrawtransaction
te da.
pebwindkraft