wallet: store all witness variants of a transaction
Pol Espinasa22/07/2026 20:11
Pregunta 2 -> ¿Por qué el wallet necesita almacenar todas las variantes de witness de una transacción? ¿Qué escenario práctico lo motiva?
30/07/2026 19:08
Quien se anima?
>30/07/2026 19:08
En el commit msg 56cf27db4dc005fa49cf960999096a13a4ddd862 está el rationale, incluyendo un ejemplo: una transacción puede tener múltiples witnesses válidos que comparten el mismo txid pero difieren en el wtxid. Por ejemplo, cuando un output de taproot se gasta con key path en una variante y con script path en otra. Como la wallet no controla qué variante se confirma o se propaga, necesita almacenar todas las variantes que ve para reconocer la tx a través de alguna de sus wtxids y reportar cual se confirmó.
2
Santochibtc30/07/2026 19:09
La wallet puede calcular mejor la fee ante reemplazos de la tx, eligiendo la version que tenga el menor peso
1
arejula2730/07/2026 19:09
Así es
nacho_porte30/07/2026 19:09
Porque si no se pierde información relevante, el cálculo de fees podía no ser correcto en casos donde queremos hacer un RBF de la tx, las variantes podrían tener ferrate distinto y RBF necesita saber el ferrare de la tx que debe reemplazar
1
arejula2730/07/2026 19:10
Puede que uses otro witness Al canónico pero para que funcione rbf tienes que superar su Fee rate
2
Pol Espinasa30/07/2026 19:11
Se os ocurre algun escenario que involucre algun reorg?
podría pasar que luego de un reorg la versión canónica anterior no es la con menor peso y por lo tanto luego la wallet calcularía mal fees de la nueva variante
1
arejula2730/07/2026 19:14
Si hay reorg y se queda fuera podemos mandar la de mayor feerate i guess
>30/07/2026 19:15
la wallet se queda mandando una vieja?
Pol Espinasa30/07/2026 19:16
el wallet se queda mandando la 1a que vio
1
30/07/2026 19:16
o la que considera mejor en un primer momento, pero puede no ser la que se confirma