Documentación

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

  1. Despliega el nuevo contrato resolver, apuntando al mismo EnergyRegistry
  2. Autoriza el nuevo resolver en el registry: registry.authorizeResolver(newResolver)
  3. Registra un nuevo schema en EAS con la dirección del nuevo resolver
  4. Anuncia el nuevo UID del schema a los watchers
  5. Los watchers actualizan su variable de entorno SCHEMA_UID y siguen atestando
  6. Cuando todos los watchers hayan migrado, pausa el resolver antiguo: oldResolver.pause()
  7. Quita la autorización del resolver antiguo: registry.deauthorizeResolver(oldResolver)
Nota

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 chains

Pausa 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.

Solidity
// Pause attestations
resolver.pause()

// Resume attestations
resolver.unpause()