Volver a la página principal
lunes 9 diciembre 2024
7

Cómo usar functions en Solidity para definir la lógica de los contratos

Las funciones en Solidity son bloques de código reutilizables que ejecutan una acción cuando son invocadas. Pueden recibir parámetros de entrada, devolver valores, y ser configuradas con modificadores de acceso y comportamiento. Estas funciones definen la lógica principal de un contrato inteligente.

Tipos de funciones según acceso:

  • Public: Accesible desde dentro y fuera del contrato.
  • Private: Solo accesible dentro del contrato donde se declara.
  • Internal: Solo accesible desde dentro del contrato y contratos derivados.
  • External: Solo accesible fuera del contrato.

Configuraciones adicionales:

  • Pure: No acceden ni modifican el estado.
  • View: Acceden pero no modifican el estado.
  • Payable: Permiten recibir Ether.

Sintaxis básica de una función en Solidity

pragma solidity ^0.8.0;

contract Ejemplo {
    uint public contador;

    // Función pública que incrementa el contador
    function incrementar() public {
        contador += 1;
    }

    // Función de solo lectura
    function obtenerContador() public view returns (uint) {
        return contador;
    }

    // Función con parámetros y retorno
    function sumar(uint a, uint b) public pure returns (uint) {
        return a + b;
    }
}

Parámetros y modificadores

Parámetro Tipo Descripción
pure Modificador Indica que la función no interactúa con el estado del contrato.
view Modificador Permite consultar datos sin alterar el estado.
payable Modificador Habilita la función para recibir Ether.
returns Palabra clave Especifica el tipo de datos que devuelve la función.

Ejemplos prácticos

Función para recibir Ether

function recibirPago() public payable {
    require(msg.value > 0, "Debe enviar Ether");
}

Función que interactúa con variables de estado

function setValor(uint _valor) public {
    contador = _valor;
}

Función con acceso restringido

address private owner;

constructor() {
    owner = msg.sender;
}

function soloOwner() public view {
    require(msg.sender == owner, "No autorizado");
}

Referencias oficiales

Para más información sobre el uso de funciones en Solidity, visita la documentación oficial de Solidity.

Etiquetas:
solidity
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer