Ruta de actualización
El resolver puede reemplazarse sin migrar datos. Esta sección explica cómo desplegar un nuevo resolver y migrar a los watchers sin tiempo de inactividad.
¿Por qué actualizar?
El resolver contiene la lógica de validación: decodificación de datos, verificación de permisos, validación estructural y manejo de reemplazos. Si se encuentra un error o se necesita nueva lógica, se puede desplegar un nuevo resolver mientras el registry (y todos sus datos) permanece intacto.
Pasos de migración
- Despliega el nuevo contrato resolver, apuntando al mismo EnergyRegistry
- Autoriza el nuevo resolver en el registry: registry.authorizeResolver(newResolver)
- Registra un nuevo schema en EAS con la dirección del nuevo resolver
- Anuncia el nuevo UID del schema a los watchers
- Los watchers actualizan su variable de entorno SCHEMA_UID y siguen atestando
- Cuando todos los watchers hayan migrado, pausa el resolver antiguo: oldResolver.pause()
- Quita la autorización del resolver antiguo: registry.deauthorizeResolver(oldResolver)
Durante la migración, ambos resolvers están activos al mismo tiempo. Las atestaciones realizadas con cualquiera de los dos UID de schema son válidas y se registran en el mismo registry.
Qué cambia y qué permanece
Changes:
✓ New resolver contract address
✓ New schema UID (registered with new resolver)
✓ Watchers update their SCHEMA_UID config
Does NOT change:
✗ Registry address
✗ Watcher IDs and ownership
✗ Project IDs and data
✗ Attester whitelists
✗ Energy accumulators
✗ Historical attestation data (in EAS)
✗ Period locks
✗ Replacement chainsPausa de emergencia
El propietario del resolver puede pausar las atestaciones en cualquier momento si se descubre un error crítico. La pausa bloquea las nuevas atestaciones y los reemplazos.
// Pause attestations
resolver.pause()
// Resume attestations
resolver.unpause()