Estoy estudiando P2SH y quiero crear un script personalizado. Ya creé un tx pero sin OP_CHECKMULITISIG como puedes comprobar en este enlace https://tbtc.bitaps.com/c86e443bdb3ad4845b1670a63376daf785eae3932a1b6146a7138ea46d51d24a . El script es muy simple, en Scriptpubkey puedes encontrar
OP_3 OP_EQUAL
Y en ScriptSig puse
OP_3
Todo el guión es:
02000000014ad2516da48e13a746611b2a93e3ea85f7da7633a670165b84d43adb3b446ec8000000000453025387ffffffff029f0f0000000000001976a914261216d05727044e927c385aa9bd278754cdc8dc88ac0000000000000000136a11636f72736f626974636f696e2e636f6d0a00000000
Ahora, quiero agregar 2-3 en un script simple. Mi script de canje es:
53875221"$PB1"21"$PB2"21"$PB3"53AE
donde $PB1 $PB2 $PB3 son claves públicas comprimidas.
Luego trato de firmar la transacción y agregar OP_3 en ScriptSig (aumentar su longitud en 1 byte)
Datos de transacciones originales
02000000014218ce881112706b0736419eef81220255d8dcc1412233a47091b770534f9b4700000000 6d4c6b538752210319ea83d5ab6d737133c6dad6a4f942a87d3f0e7b6ad4050d245c34103319a1c3210211ebc7feb791c8936c7a8d3661bbb54470ecf579fd008d279cda67fc3e7374c721023dfba960bd3b37e004e34cd7777b9b402fb95d145d2649c3adfd5a93411c2c3453ae ffffffff025044042a010000001976a91475704b43283de0bdca419b898250e1916acc9df088ac0000000000000000136a11636f72736f626974636f696e2e636f6d0a00000000
Datos de transacciones con OP_3 en scriptSig
02000000014218ce881112706b0736419eef81220255d8dcc1412233a47091b770534f9b4700000000 6e534c6b538752210319ea83d5ab6d737133c6dad6a4f942a87d3f0e7b6ad4050d245c34103319a1c3210211ebc7feb791c8936c7a8d3661bbb54470ecf579fd008d279cda67fc3e7374c721023dfba960bd3b37e004e34cd7777b9b402fb95d145d2649c3adfd5a93411c2c3453ae ffffffff025044042a010000001976a91475704b43283de0bdca419b898250e1916acc9df088ac0000000000000000136a11636f72736f626974636f696e2e636f6d0a00000000
Cuando envío la transacción me sale este error:
código de error: -26 mensaje de error: obligatorio-script-verify-flag-failed (Operación no válida con el tamaño de pila actual) (código 16)
¿Cómo intentaste firmar tu transacción? No hay firmas en su transacción, por lo que OP_CHECKMULTISIG
está fallando.
Debido a que está utilizando un script personalizado, es poco probable que el software de firma pueda firmar su transacción porque solo puede firmar para plantillas estándar. No está utilizando una plantilla de secuencia de comandos estándar (debido al OP_3 OP_EQUAL
), por lo que no se están creando firmas. Para firmar esta transacción, deberá producir las firmas manualmente (calculando el sighash correcto y firmándolo) e insertarlas en la transacción manualmente.
monoUsuario
createrawtransaction
Me gustabitcoin-cli createrawtransaction '[{"txid":"'$TXID'","vout":'$VOUT',"scriptPubKey":"'$SCRIPTPUBKEY'","redeemScript":"'$REDEEM'"}]' '[{"'$ADDR_MITT'":'$AMOUNT'}'
e intento firmar conbitcoin-cli signrawtransactionwithkey $TX_DATA '["'$PK1'","'$PK2'"]' '[{"txid":"'$TXID'","vout":'$VOUT',"scriptPubKey":"'$SCRIPTPUBKEY'","redeemScript":"'$REDEEM'"}]'
andres chow
monoUsuario
andres chow