Lección 3

Escribir un contrato inteligente básico

Las variables, funciones y modificadores son componentes esenciales en los contratos inteligentes de Solidity. Solidity tiene dos tipos de variables: variables de estado y variables locales.

En esta sección, discutiremos el proceso de escribir un contrato inteligente básico usando Solidity. Cubriremos componentes esenciales como variables, funciones y modificadores. Luego, recorreremos un ejemplo de implementación de un contrato de token simple.

Variables, funciones y modificadores

  • VariablesEn Solidity, hay dos tipos de variables: variables de estado y variables locales. Las variables de estado se almacenan permanentemente en la cadena de bloques, mientras que las variables locales son temporales y existen solo dentro del alcance de una función.- FuncionesLas funciones son los bloques de construcción de los contratos inteligentes. Se utilizan para realizar tareas específicas, como crear transacciones y ejecutar lógica personalizada. Las funciones pueden tener parámetros de entrada y valores de retorno, lo que permite una mayor personalización y flexibilidad.- Modificadores: Los modificadores son únicos en Solidity y se utilizan para modificar el comportamiento de una función. Pueden mejorar la legibilidad y la capacidad de gestión del código, y se pueden utilizar para autenticar los valores entrantes o ejecutar condicionalmente una función llamada.Ejemplo 1: Implementación de un contrato de token simple

Creemos un contrato de token simple usando Solidity. Este contrato permitirá a los usuarios transferir tokens entre cuentas y verificar el saldo de tokens de cualquier cuenta.

TypeScriptpragma solidez ^0.8.0;contrato SimpleToken {    // Declarar variables de estado    dirección pública propietaria;    asignación(dirección => uint256) públicas saldos;    // Inicializar el contrato del token    constructor(uint256 suministroInicial) {        propietaria = msg.sender;        saldos[propietaria] = suministroInicial;    }    // Función para transferir tokens    función transferir(dirección a, uint256 cantidad) pública {        require(saldos[msg.sender] >= cantidad, "Saldo insuficiente");        saldos[msg.sender] -= cantidad;        saldos[a] += cantidad;    }    // Función para verificar el saldo del token de una cuenta    función balanceOf(dirección cuenta) pública vista devuelve (uint256) {        return saldos[cuenta];    }}
```En este contrato, tenemos:

- Variables de estado`propietario`y`saldos`para almacenar la dirección del propietario del contrato y los saldos de tokens de todas las direcciones, respectivamente.- Una `constructor`función que establece el suministro inicial de tokens y los asigna al propietario del contrato.- Un `transferencia`función que permite a los usuarios transferir tokens a otras cuentas. Utiliza el `requerir`declaración para asegurar que el remitente tiene suficientes tokens para transferir.- Una `balanceOf`función que devuelve el saldo del token de una cuenta especificada.- Este contrato básico de token demuestra cómo usar variables, funciones y modificadores en Solidity para crear un contrato inteligente simple y funcional.**Ejemplo2: Implementación de un sistema de votación simple**

pragma solidity ^0.8.0;contrato SistemaDeVotacion { mapeo (bytes32 => uint256) public votesReceived; bytes32[] public candidateList; constructor(bytes32[] memory candidateNames) { candidateList = candidateNames; } función voteForCandidate(bytes32 candidate) public { require(validCandidate(candidate), "Candidato inválido."); votesReceived[candidate] += 1; } función totalVotesFor(bytes32 candidate) public view returns (uint256) { require(validCandidate(candidate), "Candidato inválido."); return votesReceived[candidate]; } función validCandidate(bytes32 candidate) public view returns (bool) { for (uint256 i = 0; i Aspectos destacados Las variables, funciones y modificadores son componentes esenciales en contratos inteligentes de Solidity. Solidity tiene dos tipos de variables: variables de estado y variables locales. Las funciones se utilizan para realizar tareas y pueden tener parámetros de entrada y valores de retorno. Los modificadores se utilizan para modificar el comportamiento de una función y mejorar la legibilidad y la facilidad de gestión del código. El contrato SimpleToken permite a los usuarios transferir tokens y verificar saldos de tokens. El contrato de SimpleToken muestra el uso de variables de estado, una función constructora y funciones como transfer y balanceOf. El contrato VotingSystem permite a los usuarios votar por candidatos y hacer un seguimiento de los recuentos de votos. El contrato VotingSystem muestra el uso de mapeos, matrices y funciones como voteForCandidate, totalVotesFor y validCandidate.

Descargo de responsabilidad

* La inversión en criptomonedas implica riesgos significativos. Proceda con precaución. El curso no pretende ser un asesoramiento de inversión.

* El curso ha sido creado por el autor que se ha unido a Gate Learn. Cualquier opinión compartida por el autor no representa a Gate Learn.