Documentación

Eventos

Todos los eventos los emite el contrato EnergyRegistry. Forman una pista de auditoría on-chain completa que pueden consumir indexadores y dashboards.

Eventos de watcher

Solidity
event WatcherRegistered(
    uint64 indexed watcherId,
    string name,
    address indexed owner
);

event WatcherOwnershipTransferred(
    uint64 indexed watcherId,
    address indexed previousOwner,
    address indexed newOwner
);

Eventos de proyecto

Solidity
event ProjectRegistered(
    uint64 indexed projectId,
    uint64 indexed watcherId,
    string name,
    uint8 energyType
);

event ProjectDeregistered(uint64 indexed projectId);

event ProjectTransferred(
    uint64 indexed projectId,
    uint64 indexed fromWatcherId,
    uint64 indexed toWatcherId
);

event ProjectMetadataURISet(
    uint64 indexed projectId,
    string uri
);  // EIP-4906 compatible

Eventos de atestadores

Atestadores por proyecto

Solidity
event AttesterAdded(
    uint64 indexed projectId,
    address indexed attester
);

event AttesterRemoved(
    uint64 indexed projectId,
    address indexed attester
);

Atestadores a nivel de watcher

Solidity
event WatcherAttesterAdded(
    uint64 indexed watcherId,
    address indexed attester
);

event WatcherAttesterRemoved(
    uint64 indexed watcherId,
    address indexed attester
);
Nota

Los eventos de atestadores por proyecto y a nivel de watcher son independientes. AttesterAdded/AttesterRemoved siempre se refieren al alcance por proyecto. WatcherAttesterAdded/WatcherAttesterRemoved se refieren al alcance de todo el watcher.

Eventos de energía

Solidity
event EnergyAttested(
    uint64 indexed projectId,
    bytes32 indexed uid,
    uint64 fromTimestamp,
    uint64 toTimestamp,
    uint256 energyWh,
    address indexed attester,
    uint8 energyType,
    string metadataURI,
    uint256[] readings
);

event EnergyRevoked(
    uint64 indexed projectId,
    uint256 energyWh,
    address indexed attester,
    uint8 energyType
);

event EnergyReplaced(
    uint64 indexed projectId,
    bytes32 indexed oldUid,
    bytes32 newUid,
    uint64 fromTimestamp,
    uint64 toTimestamp,
    uint256 oldEnergyWh,
    uint256 newEnergyWh,
    address indexed attester,
    string metadataURI
);
Nota

EnergyReplaced se emite cuando una atestación de reemplazo corrige una anterior. El registro ajusta los acumuladores de energía según la diferencia entre newEnergyWh y oldEnergyWh. La cadena de reemplazos se registra on-chain mediante el mapping _replacedBy.

Eventos de administración

Solidity
event ResolverAuthorized(address indexed resolver);
event ResolverDeauthorized(address indexed resolver);

event EnergyTypeRegistered(uint8 indexed id, string name);
event EnergyTypeRemoved(uint8 indexed id, string name);
event EnergyTypeAdminTransferred(
    address indexed previousAdmin,
    address indexed newAdmin
);