Fase 2: suscripciones en EVM (extracción por allowance)
Estado: Planificada.
SubscriptionHub con charge(id) pública. El pagador firma approve(spender, cap) una sola vez; el hub aplica plazos, tope, allowance y saldo. El keeper sustituye al procesador custodial de cobro automático.
Alcance
SubscriptionHubimplementado y auditado.- La app de pago dirige
approvea la dirección del hub. - La API
approve-auto-chargeacepta allowances con el hub como autorizado. - Los suscriptores existentes migran de forma opcional en la renovación.
Código afectado
- api/src/scheduler/processors/subscription-auto-charge.processor.ts: extracción mediante
SubscriptionHub.chargeen lugar de una smart account custodial. - App
pay: el valor de configuración del autorizado pasa a ser la dirección del hub. - Panel: banner de migración para las suscripciones existentes.
- Nuevo: indexador centrado en suscripciones (reutiliza la infraestructura de la Fase 1).
Impacto en ejecución / UX
- El pagador ve que el autorizado es un contrato en lugar de una hot wallet. El paso único de
approveon-chain no cambia. - La revocación se hace desde la interfaz de la wallet (
approve(0)o equivalente), tal como documenta Cobro automático. - Los webhooks del comercio se disparan en los mismos momentos y con la misma forma.
- Interfaz nueva: botón «Pasar a no custodial» en la página de detalle de la suscripción.
Limitaciones actuales
- El allowance debe ser suficiente; los cobros con allowance insuficiente fallan con
ChargeSkipped(InsufficientAllowance). - Los cambios de tope requieren que el pagador vuelva a aprobar.
- El ID de suscripción es un
bytes32; se expone como campo añadido en el objeto de suscripción.
Entrada del blog relacionada
Fase 2: suscripciones con extracción por allowance
Lista de comprobación del estado
-
SubscriptionHubimplementado con todos los invariantes - Tests de fuzzing e invariantes (tope, allowance, reorg, casos de omisión)
- Auditoría delta del hub aplicada
- EOA keeper aprovisionada por cadena y monitorizada
- La app de pago migró el destino de
approveal hub - Endpoint
approve-auto-chargeactualizado - Banner del panel activo
- Grupo canary migrado y estable durante 14 días