CURSO DE SOLIDITY: DE CERO A PROGRAMADOR

1. Introducción a Blockchain y Ethereum

1.1 Conceptos fundamentales de Blockchain

1.2 ¿Qué es Ethereum?

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. Fundamentos de Solidity

3.1 Sintaxis básica

3.2 Tipos de datos (uint, int, string, bool, address)

3.3 Variables de estado, locales y globales

3.4 Funciones y visibilidad

4. Control de Flujo

4.1 Estructuras condicionales (if, else)

4.2 Bucles (for, while)

4.3 Modificadores de funciones

5. Gestión de Contratos Inteligentes

5.1 Crear y desplegar contratos inteligentes

5.2 Concepto de constructor

5.3 Eventos en Solidity

5.4 Herencia de contratos

5.5 Uso de bibliotecas en Solidity

6. Funciones Avanzadas

6.1 Modificadores de funciones

6.2 Pago y gestión de ether en contratos

6.3 Transferencias y withdrawals

6.4 Uso de fallback y receive

7. Manejo de Arrays y Structs

7.1 Arrays unidimensionales y multidimensionales

7.2 Declaración y uso de structs

7.3 Mapeos (Mappings)

7.4 Iteración sobre estructuras de datos

8. Seguridad en Contratos Inteligentes

8.1 Reentrancy y cómo prevenirlo

8.2 Manipulación de tiempos

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.2 Contratos proxy

9.3 Uso de delegatecall

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. Gas y Optimización

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. Oráculos y Datos Externos

12.1 ¿Qué es un oráculo?

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.1 ¿Qué es DeFi?

14.2 Contratos inteligentes en finanzas descentralizadas (DeFi)

14.3 Desarrollo de aplicaciones descentralizadas (DApps) en Solidity

15. Actualización y Mantenimiento de Contratos

15.1 Patrones de diseño de contratos actualizables

15.2 Mantenimiento de contratos después del despliegue