Compilación y despliegue de contratos inteligentes con Hard Hat
Clase 9 de 24 • Curso de Dapps: Introducción al Desarrollo de Aplicaciones Descentralizadas
Resumen
¿Cómo se compila un contrato inteligente con Hardhat?
La compilación es un paso fundamental para llevar un contrato inteligente a la blockchain. Hardhat simplifica este proceso, permitiéndote transformar tu código Solidity en un formato ejecutable por la Ethereum Virtual Machine (EVM). Al compilar con Hardhat, lo que obtienes es un "código objeto", un texto en formato hexadecimal que la EVM puede interpretar. Aquí te explicamos cómo lograrlo.
¿Qué es el target de la compilación en Solidity?
Solidity es un lenguaje de programación que compila para un objetivo específico: la máquina virtual de Ethereum (EVM). Esto significa que aunque escribes tus contratos en un lenguaje de alto nivel (Solidity), el resultado final es un conjunto de instrucciones para la EVM.
Este proceso genera un output hexadecimal que, tras ser compilado, es enviado a un nodo de Ethereum. Aquí, se procesa y almacena como parte de un bloque en la blockchain, permitiéndote interactuar con tu contrato inteligente posteriormente.
¿Cómo compilar con Hardhat?
Utilizar Hardhat para compilar es bastante sencillo. Básicamente, necesitas ejecutar el siguiente comando en tu terminal:
npx hardhat compile
Este comando utiliza la información de tu archivo de configuración de Hardhat, incluida la versión de Solidity y el compilador que hayas seleccionado. El resultado se guarda en una carpeta específica para su uso posterior, ya sea para pruebas o para el despliegue en la blockchain.
¿Cómo se prueban los contratos inteligentes con Hardhat?
La prueba de contratos es crítica antes de cualquier despliegue real. Los desarrolladores utilizan Hardhat para realizar pruebas de contratos inteligentes escritos en Solidity utilizando JavaScript y Ether.js, asegurando que todo funcione correctamente. Esto es crucial ya que, una vez que un contrato se encuentra en la blockchain, no se puede modificar.
¿Cómo funcionan las pruebas en Hardhat?
Hardhat facilita la ejecución de pruebas usando JavaScript. Con la ayuda de Ether.js:
- Puedes instanciar tu contrato inteligente.
- Interactuar con sus funciones.
- Realizar y verificar inputs y outputs.
- Hacer assertions sobre las pruebas, asegurándote su correcto funcionamiento antes del despliegue.
¿Por qué es importante probar antes del despliegue?
Recuerda: la blockchain es inmutable. Una vez que un contrato está desplegado, no se puede "bajar". Las pruebas te aseguran que el contrato no tiene fallos y evitarán problemas en su uso futuro.
¿Cómo se despliega un contrato usando Hardhat?
El despliegue es un paso esencial que lleva tu contrato de pruebas a la blockchain, ya sea en una red de prueba o en la mainnet. Este proceso no es un simple "subir a un servidor", sino una transacción en la blockchain.
¿Qué contiene una transacción de despliegue?
La transacción incluye el código Solidity compilado en el campo de datos. Esta transacción, firmada por la persona que despliega el contrato, puede dirigirse a cualquier red compatible con EVM, como Ethereum y sus testnets, Binance Smart Chain y Layer 2 como Optimism o Polygon.
¿Qué consideraciones tener al generar un script de despliegue?
- Si tu contrato tiene parámetros en su constructor, debes configurarlos en tu script de despliegue.
- Hardhat proporciona un ejemplo básico para desplegar contratos, el cual puedes personalizar.
- Puedes establecer despliegues más complejos de múltiples contratos conectados en conjunto.
Animamos a los estudiantes a experimentar y practicar simulando despliegues en testnets antes de utilizar la mainnet. ¡La práctica constante te permitirá dominar el arte de los contratos inteligentes en blockchain!