API de EnergyRegistry
Referencia completa de funciones del contrato EnergyRegistry, la capa de estado permanente del protocolo.
Gestión de watchers
registerWatcher
registerWatcher(string name) → uint64 watcherIdRegistra un nuevo watcher. Quien llama pasa a ser el propietario. Totalmente sin permisos (permissionless): no requiere aprobación. Emite WatcherRegistered.
transferWatcherOwnership
transferWatcherOwnership(uint64 watcherId, address newOwner)Transfiere la propiedad de un watcher a una nueva dirección. Solo puede llamarla el propietario actual del watcher. Emite WatcherOwnershipTransferred.
getWatcher
getWatcher(uint64 watcherId) → WatcherDevuelve el struct Watcher (owner, registered, name).
isWatcherRegistered
isWatcherRegistered(uint64 watcherId) → boolgetNextWatcherId
getNextWatcherId() → uint64Devuelve el próximo ID de watcher que se asignará.
Gestión de proyectos
registerProject
registerProject(uint64 watcherId, string name, uint8 energyType) → uint64 projectIdRegistra un nuevo proyecto bajo un watcher. El energyType determina el tipo de proyecto: 0 = consumidor (sin fuente de generación), 1–13+ = generador (fuente de energía específica). Solo puede llamarla el propietario del watcher. Emite ProjectRegistered.
deregisterProject
deregisterProject(uint64 projectId)Da de baja un proyecto. Bloquea nuevas atestaciones, pero conserva todos los datos históricos y los acumuladores. Emite ProjectDeregistered.
transferProject
transferProject(uint64 projectId, uint64 toWatcherId)Transfiere un proyecto a otro watcher. Migra los totales de energía acumulada. Debe llamarla el propietario del watcher de origen. Emite ProjectTransferred.
getProject
getProject(uint64 projectId) → ProjectDevuelve el struct Project (watcherId, registered, energyType, name).
getProjectType
getProjectType(uint64 projectId) → uint8Devuelve el tipo binario del proyecto: 0 = generador (energyType > 0), 1 = consumidor (energyType == 0).
getProjectEnergyType
getProjectEnergyType(uint64 projectId) → uint8Devuelve el ID del tipo de energía almacenado (0 para consumidor, 1–13+ para una fuente de generación específica).
isProjectRegistered
isProjectRegistered(uint64 projectId) → boolgetWatcherProjects
getWatcherProjects(uint64 watcherId) → uint64[]Devuelve todos los IDs de proyecto de un watcher (incluidos los dados de baja).
setProjectMetadataURI
setProjectMetadataURI(uint64 projectId, string uri)Define o actualiza el URI de metadatos de un proyecto. Solo el propietario del watcher. Emite ProjectMetadataURISet.
getProjectMetadataURI
getProjectMetadataURI(uint64 projectId) → stringGestión de atestadores
addAttester
addAttester(uint64 projectId, address attester)Autoriza a un atestador para un proyecto específico. Solo el propietario del watcher. Emite AttesterAdded.
removeAttester
removeAttester(uint64 projectId, address attester)Quita a un atestador de un proyecto. Emite AttesterRemoved.
addAttesters
addAttesters(uint64 projectId, address[] attesters)Autoriza en lote a varios atestadores para un proyecto.
removeAttesters
removeAttesters(uint64 projectId, address[] attesters)Quita en lote a varios atestadores de un proyecto.
addWatcherAttester
addWatcherAttester(uint64 watcherId, address attester)Autoriza a un atestador para todos los proyectos de un watcher. Emite WatcherAttesterAdded.
removeWatcherAttester
removeWatcherAttester(uint64 watcherId, address attester)Quita a un atestador a nivel de watcher. Emite WatcherAttesterRemoved.
isProjectAttester
isProjectAttester(uint64 projectId, address attester) → boolisWatcherAttester
isWatcherAttester(uint64 watcherId, address attester) → boolAcumuladores de energía
getTotalGeneratedEnergy
getTotalGeneratedEnergy(uint64 projectId) → uint256Devuelve la energía total generada, en Wh, de un proyecto.
getTotalConsumedEnergy
getTotalConsumedEnergy(uint64 projectId) → uint256getTotalGeneratedEnergyByWatcher
getTotalGeneratedEnergyByWatcher(uint64 watcherId) → uint256getTotalConsumedEnergyByWatcher
getTotalConsumedEnergyByWatcher(uint64 watcherId) → uint256Consulta de períodos y cadenas
getAttestedPeriodUID
getAttestedPeriodUID(uint64 projectId, uint64 fromTimestamp, uint64 toTimestamp) → bytes32Devuelve el UID de la atestación que cubre este período, o bytes32(0) si no está atestado.
getAttestedPeriodStartUID
getAttestedPeriodStartUID(uint64 projectId, uint64 fromTimestamp) → bytes32Devuelve el UID de la atestación que comienza en este timestamp, o bytes32(0).
getProjectLastTimestamp
getProjectLastTimestamp(uint64 projectId) → uint64Devuelve el último toTimestamp de la cadena de atestaciones del proyecto. Las nuevas atestaciones deben comenzar desde este timestamp.
getReplacementUID
getReplacementUID(bytes32 uid) → bytes32Devuelve el UID de la atestación que reemplazó a la indicada, o bytes32(0) si no fue reemplazada. Sigue la cadena para encontrar la versión más reciente.
Gestión de tipos de energía
registerEnergyType
registerEnergyType(uint8 id, string name)Registra un nuevo tipo de fuente de energía. Solo el administrador de tipos de energía. Emite EnergyTypeRegistered.
removeEnergyType
removeEnergyType(uint8 id)Elimina un tipo de energía. Solo el administrador de tipos de energía. Emite EnergyTypeRemoved.
transferEnergyTypeAdmin
transferEnergyTypeAdmin(address newAdmin)Transfiere el rol de administrador de tipos de energía. Solo el administrador actual. Emite EnergyTypeAdminTransferred.
getEnergyTypeAdmin
getEnergyTypeAdmin() → addressgetEnergyTypeName
getEnergyTypeName(uint8 id) → stringisEnergyTypeRegistered
isEnergyTypeRegistered(uint8 id) → boolAutorización de resolvers
authorizeResolver
authorizeResolver(address resolver)Autoriza a un resolver a escribir en el registro. Solo el propietario del contrato.
deauthorizeResolver
deauthorizeResolver(address resolver)isAuthorizedResolver
isAuthorizedResolver(address resolver) → bool