Skip to content

Repositorio del taller "Intro a testing y seguridad de smart contracts con Foundry" dictado el 30 de Marzo del 2023 para HackIT/BA>.

License

Notifications You must be signed in to change notification settings

theredguild/workshop-hackitba-2023

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Intro a testing y seguridad de smart contracts con Foundry @ HackIT/BA

standard-readme compliant

Repositorio del taller "Intro a testing y seguridad de smart contracts con Foundry" dictado el 30 de Marzo del 2023 para HackIT/BA> por miembros de The Red Guild.

Tabla de Contenidos

Introducción

Durante el workshop vas a aprender, desde cero, los pasos fundamentales para usar Foundry, un framework de testing de contratos inteligentes.

Crearemos nuestro propio contrato para mintear NFTs, y veremos paso a paso como Foundry nos permite ponerlo a prueba para encontrar fallas y vulnerabilidades de seguridad.

Por si acaso aclaramos que el taller NO se trata de cómo construir tu propio NFT. Sólo utilizaremos un simple contrato de NFTs para mostrar las características de Foundry como una excelente herramienta de testing de smart contracts.

Recorrido

  1. Breve introducción al taller
    • Presentación y objetivos
    • Qué pasa si no testeas tus smart contracts.
  2. Comentarios iniciales sobre Foundry
    • ¿Qué es? ¿Para qué se usa? ¿Por qué es tan bueno? ¿Y Hardhat?
  3. Instalación de Foundry
  4. Creación de un proyecto de Foundry
  5. Creación de un contrato simple de NFT
  6. Troubleshooting e instalación de dependencias
  7. Testing, testing, testing
    • Constructores.
    • Cheatcodes de Foundry.
    • Tests para verificar funcionalidad.
    • Tests de seguridad para evitar mal manejo de fondos, reentrancy, errores de aritmética, logging incorrecto.

Requisitos preliminares

  • Entorno local de programación con las utilidaded de línea de comandos curl y bash
  • Tener instalado un IDE como VSCode.
    • Si usás VSCode, instalá la extensión para Solidity.
  • Conocimientos básicos de programación de contratos inteligentes en Solidity.
  • Conocimientos básicos sobre NFTs (Non-Fungible Tokens), y estar familiarizado con su implementación tecnológica siguiendo el estándar ERC721.

Preparación

Si querés adelantar algunos pasos previo al taller, te recomendamos:

  1. Descargar Foundry con el comando:
curl -L https://foundry.paradigm.xyz | bash
  1. Ejecutar el commando foundryup
  2. Verificar la instalación de las tres herramientas más importantes de Foundry (forge, cast y chisel) ejecutando los comandos:
forge --version
> forge 0.2.0 (5182f43 2023-03-24T00:12:06.292809241Z)

chisel --version
> chisel 0.1.1 (5182f43 2023-03-24T00:12:34.566977743Z)

cast --version
> cast 0.2.0 (5182f43 2023-03-24T00:12:06.292809241Z)
  1. Clonar este repositorio a tu ambiente de desarrollo
git clone https://github.com/theredguild/workshop-hackitba-2023.git ws-hackitba

Probando el setup

Asegurarse de estar en el directorio del proyecto

cd ws-hackitba

Podés ejecutar los tests con el comando:

forge test

Si bien vas a ver que ya hay código dentro de este repositorio, NO está completo. Iremos explicándolo y mejorándolo durante el taller.

Para saber más sobre el comando forge test, podés referirte a la documentación.

Recursos adicionales

Aviso importante

Este repositorio ha sido creado para ser utilizado con fines educacionales, como acompañamiento de un taller dictado en la edición 2023 de HackIT/BA.

No debe ser considerado ni reproducido sin el contexto brindado durante el taller. Todo el código incluido tiene errores y vulnerabilidades de seguridad.

About

Repositorio del taller "Intro a testing y seguridad de smart contracts con Foundry" dictado el 30 de Marzo del 2023 para HackIT/BA>.

Resources

License

Stars

Watchers

Forks