Este repositorio contiene una colección de Smart Contracts desarrollados con el lenguaje Solidity, que se utiliza para programar aplicaciones descentralizadas en la plataforma Ethereum. Cada contrato tiene una breve explicación de su funcionamiento y propósito, así como comentarios en el código para facilitar su comprensión. El objetivo de este repositorio es ofrecer ejemplos prácticos y didácticos de cómo crear y usar Smart Contracts en diferentes escenarios y casos de uso.
- Variables. Variables básicas en los smart contracts.
- Datos estructurados. Ejemplo para crear un registro de alumnos de una clase.
- Mapeo. Este código muestra cómo inicializar variables de estado y cómo usar el modificador
public
para hacerlas accesibles desde fuera del contrato. - Estructuras de control. Contrato que permite consultar el valor de las variables numeros y resultado desde cualquier cuenta externa.
- Eventos. Los eventos son un tipo de dato que sirve para emitir avisos de que ocurrió alguna acción en particular.
- Funciones. Las funciones son piezas de código definidas por un nombre, parámetros y modificadores.
- Modificadores. Un modificador es un tipo especial de función que se usa para modificar el comportamiento de otras funciones.
- Errores. Manejo de errores en los smart contracts.
- Transferencias. Se define un contrato llamado que permite enviar ether a otras direcciones usando tres métodos diferentes:
send
,transfer
ycall
. - Recepción. Código para recibir saldo en un smart contract.
- Crowdfunding. Código para programar un smart contract que permita hacer crowdfunding de proyectos.
- Tokens. Este código define un contrato inteligente que implementa las funciones básicas de un token ERC20.
- NFT. Este código define un contrato inteligente el cual implementa la interfaz ERC721 para Tokens No Fungibles (NFT) con almacenamiento de URI.
- Cadena de suministro. Este código define un contrato que representa una cadena de suministro.
- Control de acceso. Este código utiliza la librería AccessControl de OpenZeppelin para gestionar los roles de los usuarios.
- Extensiones. Utilizando OpenZeppelin se crea un Token ERC20 que permita quemar parte de su suministro y que pueda ser pausado en caso de alguna vulnerabilidad encontrada.