Ejemplo para Web3Makers
Bienvenido al proyecto de ejemplo del Bootcamp de Web3Makers.
El objetivo de este repo es dar un poco más de contexto al Bootcamp de desarrollo de Smart Contracts en Solidity. Ya que, mientras remix es una excelente herramienta, no cubre todos los casos de uso que nos pueden facilitar el manejo de proyectos más avanzados, por lo que introducimos Hardhat junto con VS Code y la extensión de hardhat-solidity como un mejor ambiente de desarrollo. Otro punto que busca demostrar este repo, es como construimos interfaces de usuario usando React y wagmi para interactuar con nuestros smart contracts fuera de Remix, Etherscan o Metamask.
Este proyecto tiene dos partes:
Un proyecto de Hardhat, una framework para facilitar el desarrollo, pruebas e integración con smart contracts. Está escrito usando Typescript ya que nos permite reducir errores y tener mejor autocompletado y sugerencias para nuestro código y es especialmente útil al interactuar con smart contracts desde Typescript.
Utiliza los siguientes plugins:
- Typechain: generador de archivos de tipos para smart contracts.
- Hardhat-deploy: Facilita el proceso de hacer deployments y almacenar la información de dichos deployments para acceder posteriormente.
También hace uso de la librería de smart contracts de Open Zeppelin
- Token.sol: contrato ERC-20 sin nada agregado.
- CatAdoption.sol: contrato ERC-721 con almacenamiento de URIs con funcionalidad agregada para funcionar como un sistema primitivo de adopción de gatitos.
Applicación de React usando la librería wagmi que provee un conjunto de Hooks de React hechos específicamente para interactuar con una wallet y smart contracts.
Otras librerías usadas:
- Material UI: esto es un bootcamp de solidity, no de CSS.
- ReactQuery: facilita la integración de react con todo tipo de interacciones asíncronas, como por ejemplo requests a API (La librería wagmi usa esta librería internamente).
Ahora que ya pasaste por el Bootcamp y viste este ejemplo te proponemos el desafío de tomar este repo y construir algo encima. Puede ser arreglar algún bug que hayas encontrado, alguna feature que creas que pueda ser útil o interesante de implementar, resolver posibles vulnerabilidades de seguridad o hasta usarlo como base para un proyecto completamente distinto. La idea es hagas un fork de este repo y hagas una PR mostrando tu trabajo.
En caso de necesitar ayuda, te recomendamos que vuelvas a los materiales del bootcamp ya que ahí, además de los videos, encontrarás muchos link a cursos más completos y a la documentación de las herramientas usadas.