He arreglado mis transacciones iniciales y he podido enviar monedas a una dirección p2sh
Ahora quiero gastar esas monedas, pero cuando trato de transmitir mis transacciones, el sitio web (blockcypher) las acepta y luego los mineros no las aceptan o las rechazan (blockstream) con:
Sendrawtransaction Error de RPC: {"código":-26,"mensaje":"bandera de verificación de secuencia de comandos no obligatoria (elementos adicionales que quedan en la pila después de la ejecución)"}
Creo que hice el ScriptSig correcto para el 2 de 2 multisig (OP_0, sig1, sig2, redimirscript), así que no estoy seguro de mi error:
OP_0 3045022100e91708339615eb38326a5c513b5dcc040bf59a1b97faef2c1f59a7b16426519a02200a4ca9d8c9f05ec824c70d1564ae2952650bc0ddc8bce92f081dd7d29d33d7ea01 3045022100ca0e751242a6d33ab2e895a9b1d9e5dce18426f2d11e69009e794ebc1004ba1a0220022a95a3f335fd84b380d6482948c24817a9f021f0dea75689eccf59e1540ae901 2d5214a175b609a7c37011420585f1fcf392fdda9a025414b1e9f0fa01914ff497607f99bf90dbd8a41bd8bb52ae
Y aquí está mi tx completo:
0100000001f51f20dce174d1a894151bdbdf397317b97ec342c4068a6b96d95babb34baa7400000000c200483045022100e91708339615eb38326a5c513b5dcc040bf59a1b97faef2c1f59a7b16426519a02200a4ca9d8c9f05ec824c70d1564ae2952650bc0ddc8bce92f081dd7d29d33d7ea01483045022100ca0e751242a6d33ab2e895a9b1d9e5dce18426f2d11e69009e794ebc1004ba1a0220022a95a3f335fd84b380d6482948c24817a9f021f0dea75689eccf59e1540ae9012e2d5214a175b609a7c37011420585f1fcf392fdda9a025414b1e9f0fa01914ff497607f99bf90dbd8a41bd8bb52aeffffffff01401f0000000000001976a914a175b609a7c37011420585f1fcf392fdda9a025488ac00000000
y el código que uso para crearlo:
Su secuencia de comandos de canje tiene la longitud de la secuencia de comandos antepuesta ( 2d
), lo que hace que la ejecución de la pila finalice con la secuencia de comandos de redención en la pila como datos en lugar de interpretarla como otra secuencia de comandos.
El script interpreta 2d
como si tuviera la intención de colocar datos en la pila con una longitud de 45 bytes, en lugar de interpretar realmente su script de canje como un script. Por lo tanto, su secuencia de comandos de canje debe comenzar con 52
y no la longitud de la secuencia de comandos, que es 0x2d.
Después de eliminar el tx 2d
del script de canje, vuelva a firmar el tx, ya que este byte adicional también cambia todo el tx para firmar.
Además, si utilizó ese script de canje para calcular su dirección p2sh, es posible que haya enviado el dinero a la dirección incorrecta.
Óscar Serna