Contexto obligatorio: PLAN_STELLAR.md y ISSUES_STELLAR.md.
Ola 1 — bloqueada por #5.
🌱 Buena primera contribución: alcance acotado, sin dependencias de red, resultado visible.
Problema
Las pantallas de alta de productores y de operadores solo aceptan direcciones de XRPL, y bloquean el botón de guardar si la dirección no es válida en esa red.
Por qué importa
Sin direcciones de Stellar registradas, nada del resto del trabajo multicadena es utilizable por la cooperativa.
Alcance
payment_app/ui_payment/producer_view.py
- Segundo campo de dirección (Stellar) con validación por
StrKey.is_valid_ed25519_public_key.
- Indicador de "cuenta no activada" cuando la cuenta no existe todavía en el ledger (decisión D7).
- Al menos una dirección obligatoria — ya no específicamente la de XRPL.
- Mostrar ambas direcciones en la ficha del productor.
admin_app/ui_admin/user_management.py
- Campo de dirección Stellar del operador, con la misma validación.
core/utils.py
generate_user_id() sigue derivándose de la dirección XRPL — los IDs ya emitidos no pueden cambiar. Para un operador solo-Stellar, generar desde su dirección Stellar. Documentar la regla en el docstring.
Fuera de alcance
Criterios de aceptación
Pruebas
Validación cruzada de direcciones; alta con una y con ambas redes; rechazo de duplicados por red.
Dependencias
Problema
Las pantallas de alta de productores y de operadores solo aceptan direcciones de XRPL, y bloquean el botón de guardar si la dirección no es válida en esa red.
Por qué importa
Sin direcciones de Stellar registradas, nada del resto del trabajo multicadena es utilizable por la cooperativa.
Alcance
payment_app/ui_payment/producer_view.pyStrKey.is_valid_ed25519_public_key.admin_app/ui_admin/user_management.pycore/utils.pygenerate_user_id()sigue derivándose de la dirección XRPL — los IDs ya emitidos no pueden cambiar. Para un operador solo-Stellar, generar desde su dirección Stellar. Documentar la regla en el docstring.Fuera de alcance
[XLM-10].Criterios de aceptación
(red, dirección), no globalmente.Pruebas
Validación cruzada de direcciones; alta con una y con ambas redes; rechazo de duplicados por red.
Dependencias
walletsyaddress_for).[XLM-10].