Contexto obligatorio: PLAN_STELLAR.md, PLAN_XAMAN.md (Fase X5 y decisión D6) y ISSUES_STELLAR.md.
Ola 4 — bloqueada por #17.
🔧 Salda deuda técnica previa: cierra la Fase X5 de PLAN_XAMAN.md, abierta desde junio.
Problema
Dos cosas que necesitan exactamente la misma solución:
xaman_sign_dialog.py es casi genérico — el QR, el polling, el timeout y resolve_status() no saben nada de XRPL — pero está atado a XamanClient y a txjson.
- La Fase X5 de
PLAN_XAMAN.md sigue abierta: escrow_view.py:98 deshabilita los botones cuando no hay seed, así que hoy no se puede gestionar un escrow con Xaman. El aviso "estará disponible en la próxima versión" lleva meses en pantalla.
Por qué importa
Las dos necesitan la misma generalización. Hacerlas por separado sería hacer el trabajo dos veces — y la segunda tendría que deshacer parte de la primera.
Alcance
Generalizar el diálogo
- Mover a
shared_ui/sign_dialog.py, parametrizando el cliente de firma y el texto.
resolve_status() se conserva como función pura y sus tests no cambian.
payment_app/ui_payment/xaman_sign_dialog.py queda como shim que reexporta, para no romper llamadas existentes.
Cerrar la Fase X5
- Habilitar la gestión de escrow XRPL con Xaman en
escrow_view.py.
EscrowFinish y EscrowCancel se construyen como txjson y se firman con el diálogo.
- El
offer_sequence se obtiene consultando la transacción ya validada, según la decisión D6 de PLAN_XAMAN.md.
- Eliminar el aviso de
escrow_view.py:99.
Fuera de alcance
- LOBSTR — es
[XLM-19]. El diálogo debe quedar listo para recibirlo, no cableado a él.
Criterios de aceptación
Pruebas
Los tests existentes del diálogo siguen verdes; prueba manual del ciclo de escrow con Xaman documentada en un comentario, con hashes.
Dependencias
Problema
Dos cosas que necesitan exactamente la misma solución:
xaman_sign_dialog.pyes casi genérico — el QR, el polling, el timeout yresolve_status()no saben nada de XRPL — pero está atado aXamanClienty atxjson.PLAN_XAMAN.mdsigue abierta:escrow_view.py:98deshabilita los botones cuando no hay seed, así que hoy no se puede gestionar un escrow con Xaman. El aviso "estará disponible en la próxima versión" lleva meses en pantalla.Por qué importa
Las dos necesitan la misma generalización. Hacerlas por separado sería hacer el trabajo dos veces — y la segunda tendría que deshacer parte de la primera.
Alcance
Generalizar el diálogo
shared_ui/sign_dialog.py, parametrizando el cliente de firma y el texto.resolve_status()se conserva como función pura y sus tests no cambian.payment_app/ui_payment/xaman_sign_dialog.pyqueda como shim que reexporta, para no romper llamadas existentes.Cerrar la Fase X5
escrow_view.py.EscrowFinishyEscrowCancelse construyen comotxjsony se firman con el diálogo.offer_sequencese obtiene consultando la transacción ya validada, según la decisión D6 dePLAN_XAMAN.md.escrow_view.py:99.Fuera de alcance
[XLM-19]. El diálogo debe quedar listo para recibirlo, no cableado a él.Criterios de aceptación
resolve_statuspasan sin modificarse.Pruebas
Los tests existentes del diálogo siguen verdes; prueba manual del ciclo de escrow con Xaman documentada en un comentario, con hashes.
Dependencias
escrow_viewmulticadena — mismo archivo, va después).[XLM-19].