Skip to content

Instantly share code, notes, and snippets.

@jmlon
Last active December 16, 2020 19:36
Show Gist options
  • Save jmlon/84cf87f5a25577b493928bca9e83b279 to your computer and use it in GitHub Desktop.
Save jmlon/84cf87f5a25577b493928bca9e83b279 to your computer and use it in GitHub Desktop.
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.7.0;
contract Energia1 {
address public consumidor;
address payable public generador;
address public contador;
address payable public distribuidora;
uint public energiaSolicitada;
uint public valorAPagar;
function crearOrden(uint cantidad) payable external {
consumidor = msg.sender;
valorAPagar = msg.value;
energiaSolicitada = cantidad;
}
// TODO: No permitir cambios posteriormente. Registro de quienes pueden generar
function aceptarOrden() external {
generador = msg.sender;
}
// TODO: Verificar que solo el contador asignado pueda validar
function verificarSuministro(uint medicion) external {
if (medicion>=energiaSolicitada) {
uint valorGenerador = valorAPagar*90/100;
uint valorDistribuidor = valorAPagar*10/100;
generador.transfer(valorGenerador);
distribuidora.transfer(valorDistribuidor);
}
}
constructor(address payable d, address v) {
distribuidora = d;
contador = v;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment