1. Introducción a Blockchain y Ethereum
1.1 Conceptos fundamentales de Blockchain
1.3 Ethereum Virtual Machine (EVM)
1.4 ¿Qué es un contrato inteligente?
2. Instalación del Entorno de Desarrollo
2.1 Requisitos previos (Node.js, npm)
2.2 Instalación de Solidity (Remix, Truffle, Hardhat)
2.3 Configuración de herramientas y entorno
3.2 Tipos de datos (uint, int, string, bool, address)
3.3 Variables de estado, locales y globales
4.1 Estructuras condicionales (if, else)
4.3 Modificadores de funciones
5. Gestión de Contratos Inteligentes
5.1 Crear y desplegar contratos inteligentes
5.5 Uso de bibliotecas en Solidity
6.1 Modificadores de funciones
6.2 Pago y gestión de ether en contratos
6.3 Transferencias y withdrawals
7.1 Arrays unidimensionales y multidimensionales
7.2 Declaración y uso de structs
7.4 Iteración sobre estructuras de datos
8. Seguridad en Contratos Inteligentes
8.1 Reentrancy y cómo prevenirlo
8.3 Subdesbordamiento y sobreflujo de enteros
8.4 Patrones de diseño seguros (circuit breakers, pull over push)
9. Interacción con otros Contratos
9.1 Llamadas a otros contratos (interfaz y ABI)
9.4 Creación y uso de contratos de fábrica (factory contracts)
10. Testing de Contratos Inteligentes
10.1 Uso de frameworks de testing (Truffle, Hardhat)
10.2 Escribir pruebas unitarias
10.3 Simulación de contratos con Ganache
11.1 Costos de gas y cómo calcularlos
11.2 Optimización del uso de gas
11.3 Análisis de gas en funciones y estructuras
12.2 Uso de Chainlink y otros oráculos
12.3 Gestión de datos externos en contratos inteligentes
13. Despliegue de Contratos en la Red Ethereum
13.1 Uso de MetaMask para despliegues
13.2 Despliegue en redes de prueba (Ropsten, Rinkeby, Goerli)
13.3 Despliegue en la red principal de Ethereum
13.4 Interacción con contratos desplegados
14. Introducción a DeFi y DApps
14.2 Contratos inteligentes en finanzas descentralizadas (DeFi)
14.3 Desarrollo de aplicaciones descentralizadas (DApps) en Solidity
15. Actualización y Mantenimiento de Contratos