Pregunta 7

wallet: store all witness variants of a transaction

Pol Espinasa 22/07/2026 20:13
Pregunta 7 -> El PR refactoriza CWalletTx para ser RAII. ¿Qué principio de diseño sigue esto y qué clase de bugs previene?
30/07/2026 19:49
Venga va una pregunta de programación, quien se anima?
> 30/07/2026 19:50
Previene UB (Undefined Behavior) y se hace para que la variante quede definida al construir la CWalletTx. De esa manera, no es un objeto a medio construir.
👍 2
nacho_porte 30/07/2026 19:50
Claro previene CWalletTx sin tx y un puntero a una referencia null
Santochibtc 30/07/2026 19:51
Los recursos que necesita un objeto se adquieren al inicializarlo y se liberan al destruirlo. La destrucción está garantizada incluso en caso de excepcion. Se garantiza que el recurso está disponible en todas las funciones del objeto, no es necesario comprobarlo. previene fugas de memoria por objetos que no se destruyen
> 30/07/2026 19:51
Antes la tx podía ser nullptr
👍 1
Pol Espinasa 30/07/2026 19:51
Exacto se previene que puedas llamar a un objeto que es nulo, sobretodo cuando hablamos de punteros
👍🏻 1
30/07/2026 19:52
lo cual podria ser un problema y podria crashear el codigo
👍 2
30/07/2026 19:52
a parte de que tiene mas sentido que no puedas tener CWalletTx nulos
30/07/2026 19:52
No tiene sentido tener una entrada de CWalletTx si no existe la transaccion!
👍 3
> 30/07/2026 19:53
Ahora se puede construir un CWalletTx con un blob
Pol Espinasa 30/07/2026 19:53
pasamos a la siguiente