Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Slide Curso de Programacion de Smart Contracts Con Solidity
Slide Curso de Programacion de Smart Contracts Con Solidity
Programación
de Smart
Contracts con
Solidity
Sebastián Pérez
Sobre mí
@sebaleoperez
Lo que
—---
practicarás en
este curso
Estructura de
un contrato
Configuración
del entorno
Tokens
Consultar
fuentes
externas
Seguridad
Cómo estructurar
—---
un contrato
● Licencia
● Importaciones
● Nombre
● Variables
● Constructor
● Funciones
● Modificadores
—---
Configuración
del entorno
Utilizando
Remix
No es
necesario
instalar
componentes
locales
Ideal para
comenzar
Utilizando
Truffle
Instalar
Node.js
Instalar truffle
via npm
Crear un
proyecto
Opcional:
instalar Visual
Studio Code
Utilizando
Hardhat
Instalar
Node.js
Instalar
hardhat
via npm
Crear un
proyecto
Opcional:
instalar Visual
Studio Code
Utilizando
Foundry
Ingresar
en la página
de github
Instalar según
la opción más
adecuada
—---
Desarrollando
un juego simple
Selección
de la idea
Simple
es mejor
Almacenar
solo lo
necesario
No exponer
información
sensible
Juego:
Tic-Tac-Toe
Para dos
jugadores.
No hay
información
sensible.
El contrato
debe soportar
múltiples
partidas.
Solo las
direcciones
habilitadas
participarán
de la partida.
Completando la
—---
lógica del
contrato
Definiendo al
—---
ganador de la
partida
—---
Obtener un
achievement
●
●
●
Token No
Fungible
Es único
Puede
entenderse
como un activo
de colección
Se representa
con el standard
ERC-721
Achievement
Logro alcanzado
en el juego
Se otorgará un NFT
a aquel jugador
que acumule 5
partidas ganadas
Achievement
Desafío: emitir
un NFT si una
cuenta gana
antes de que se
complete la grilla.
—---
Ganar tokens
por jugar
Token Fungible
● Activos que se pueden
consumir
● Reemplazables
● Similares al dinero
● Representados por el
standard ERC-20
Play to
Earn
Se emitirá 1
token por cada
partida a la
dirección del
ganador
Desafío: duplicar
la cantidad de
tokens emitidos
si el usuario
posee al menos
un achievement.
—---
Gestionar un
marketplace
Marketplace
● Aplicación descentralizada
donde los usuarios pueden
publicar sus
achievements.
● El pago de los mismos se
realiza en monedas del
juego.
Desafío: agregar
un modelo de
subasta.
Resolviendo el
—---
modelo de
subasta
—---
Sumar
aleatoriedad
Aleatoriedad
● No existe por definición en
los contratos de Solidity.
● Debemos recurrir a un
oráculo.
● Utilizaremos Chainlink
para generar un número
aleatorio.
Aleatoriedad
Determinaremos
aleatoriamente qué
jugador comienza la
partida.
Aleatoriedad
Desafío: determinar de
forma aleatoria cuántos
tokens se emiten por
partida (máximo 5 tokens).
—---
Revisión de
seguridad
Seguridad
● Utilizar herramientas de
análisis de código.
● Revisar los “errores
comunes”.
● En lo posible auditar
los contratos.
—---
Correcciones y
buenas prácticas
Continúa
—---
desarrollando
contratos
inteligentes
● Creamos un juego.
● Agregamos economía
y objetos
coleccionables.
● Consultamos fuentes
externas.
● Revisamos la
seguridad.
Recomendaciones
● Pensar, diseñar,
documentar, construir.
● Pedir colaboración.
● Darle importancia a la
seguridad.
● Estimar costos de gas.
● ¿Qué pasa si nuestro
proyecto culmina?
¿Qué más le
agregarías?
Continuemos la
conversación
@sebaleoperez