Despliegue del protocolo
Despliega el Energy Attestation Service (EnergyAS) en cualquier cadena compatible con EVM donde EAS esté disponible. El proceso de despliegue crea dos contratos y registra el schema de atestación.
Requisitos previos
- Node.js 18+ y npm instalados
- Una wallet de despliegue con fondos (suficientes para ~3 despliegues de contratos)
- EAS ya debe estar desplegado en la red de destino
1. Compilar los contratos
npx hardhat compileCompila EnergyRegistry, EnergyAttestationResolver y los contratos de EAS necesarios. Solidity 0.8.28 con el optimizador activado (200 runs, viaIR, EVM Cancun).
2. Desplegar los contratos principales
npx hardhat run scripts/deploy.ts --network <network>Este script despliega ambos contratos y autoriza al resolver en un solo paso:
- Despliega EnergyRegistry (contrato de estado permanente)
- Despliega EnergyAttestationResolver (apunta a EAS y al registro)
- Llama a registry.authorizeResolver(resolverAddress)
- Guarda las direcciones en deployments/<network>.json
Agrega las direcciones desplegadas a tu .env:
REGISTRY_ADDRESS=0x...
RESOLVER_ADDRESS=0x...3. Registrar el schema
npx hardhat run scripts/register-schema.ts --network <network>Registra el schema de atestación en el SchemaRegistry de EAS junto con la dirección del resolver. El schema admite correcciones mediante atestaciones de reemplazo (definiendo refUID con el UID original). Guarda el Schema UID devuelto.
SCHEMA_UID=0x...4. Verificar el despliegue
Tras el despliegue, comparte lo siguiente con los watchers que usarán el protocolo:
- REGISTRY_ADDRESS: los watchers interactúan con esta dirección para la configuración
- SCHEMA_UID: los watchers lo usan al enviar atestaciones
- Nombre de la red y chain ID
Advertencia: La wallet de despliegue se convierte en el propietario del contrato. Usa un multisig en los despliegues de producción para poder autorizar siempre nuevos resolvers y gestionar pausas de emergencia.