<aside> 💡 Esta guía es documentación extra para seguir desarrollando contratos inteligentes desde un IDE con HardHat.****

</aside>

Extensiones necesarias para el desarrollo en Solidity

Si bien se puede trabajar con cualquier entorno de desarrollo, hoy estaremos trabajando en Visual Studio y usaremos 2 extensiones, las cuales debemos previamente instalar. Estas son: ‘solidity’ de Juan Blanco y ‘Solidity Visual Developer’ de tintinweb. Se recomienda no instalar otras extensiones ya que pueden haber conflictos entre ellas.

Puedes utilizar un par de enfoques diferentes, según la complejidad de tu contrato. Creación de aplicación en HardHat (instalación) https://hardhat.org/tutorial/creating-a-new-hardhat-project.html

Hoy utilizaremos HardHat, un entorno de desarrollo para Solidity, compatible con cualquier blockchain que trabaje con la EVM. Esta herramienta nos permitirá correr un nodo localmente, hacer debuggin de nuestro código, especificar la o las redes donde deployar, el o los compiladores y todas las configuraciones que vimos el día de ayer con Remix, esto entre muchas otras posibilidades más.

Hardhat cuenta incluso con plugins que pueden ser creados por cualquier persona, añadiendo así un sin fin de posibilidades. Esto último es una tema que no profundizaremos pero en este enlace puedes continuar aprendiendo al respecto https://hardhat.org/plugins/ .

Configuración de Archivos de HardHat

Migración

Al igual que el resto de archivos que se verán a continuación este es un archivo JavaScript o TypeScript que especifica una ruta de deploy en la red correspondiente, se crea por defecto y suele no requerir ser modificado, salvo el caso de tener nuestros contratos ya deployados en una red y querer migrarlos a una nueva.

Testing

Los archivos de testing son fundamentales en una aplicación blockchain, una vez deployada esta es bastante costoso hacer cambios en el código fuente o dependiendo el caso directamente no se puede hacer y la única alternativa es deployar una nueva versión del contrato.

Además las aplicaciones de las Web 3 suelen manejar grandes cantidades de dinero o de valor (tokens fungibles, tokens no fungibles y criptomonedas), por lo que los errores suelen resultar en grandes pérdidas económicas.

Deploy

Este es otro archivo que se crea por defecto al iniciar HardHat y comúnmente no se necesita modificar, ya que las rutas del deploy se especifican en el siguiente archivo.

En este archivo se especifican la versión del compilador a utilizar (pudiendo ser más de uno para el caso de estar importando contratos de diferente versiones), la red donde se hará el deploy, el explorador desde el cual se obtendrá la metadata de las transacciones (ej. Near Explorer o Etherscan) y opciones relacionadas al manejo del gas que usualmente no se requieren modificar.

https://hardhat.org/tutorial/testing-contracts.html

Escribir tests es de crucial importancia, ya que está en juego el dinero del usuario. Para esto trabajaremos con unos tests de prueba, usaremos ethers.js para interactuar con el contrato de los días anteriores y Mocha, que es un entorno para hacer pruebas asíncronas.

https://mochajs.org/