4.3 – Ethereum, Smart Contracts en Ethereum con Protección Modifier PRO!!!. Solidity

Ethereum y Solidity

En la entrada anterior añadíamos algo de seguridad pero de una forma muy rudimentaria. En esta ocasión lo vamos hacer de una forma mucho mas profesional usando modifiers.

// Versión 
pragma solidity ^0.4.0;

// Definición de contrato
contract HolaMundoProtectProfesional {
    string saludo = "Hola mundo";
    address propietario;
    
    function HolaMundoProtectProfesional() {
        propietario = msg.sender;
    }
    
    modifier propietarioContrato {
        if (propietario != msg.sender) {
            throw;
        } else {
            _;
        }
    }

    function getSaludo() constant returns(string) {
        return saludo;
    }

    function setSaludo(string nuevoSaludo) propietarioContrato returns(string){
        saludo = nuevoSaludo;
        return "Se ha cambiado el contenido correctamente";    
    }
}

 

A programar!!!

Como podemos observar el código se ha reducido bastante, gracias al uso de modifiers. En la linea 9 se esta definiendo el modifier con la validación, lanzando un error si no son diferentes o continuar ejecutando el código.

En la linea 25, se ha modificado la definición de la función añadiendo el modifier  y quitando toda la comprobación dentro de la función, ya que se encarga el modifier.

Para ver como funciona, aquí tienes un pequeño vídeo: