Extensión de la funcionalidad de los tokens
Clase 9 de 19 • Curso de Introducción a OpenZeppelin
Resumen
Los diferentes tipos de tokens que podemos implementar en un contrato inteligente pueden extender sus funcionalidades, dependiendo la necesidad, heredando una serie de contratos que OpenZeppelin ofrece para cambiar su comportamiento.
Comportamiento de un token
Si ingresas al repositorio de GitHub de los diferentes contratos ERCXXX que OpenZeppelin tiene implementado, encontrarás que cada uno de ellos tiene a su vez una serie de extensiones y utilidades que puedes utilizar en tus contratos.
-
- /entensions
- /utils
- ERC20.sol
- IERC20.sol
-
- /entensions
- /utils
- ERC721.sol
- IERC721.sol
-
- /entensions
- /utils
- ERC1155.sol
- IERC1155.sol
Te animo a que explores qué subcontratos tiene cada estándar y la utilidad de cada uno. Por lo general, el nombre del contrato es bastante descriptivo sobre qué funcionalidad le aporta a cada estándar. Veamos las más interesantes:
- Burneable: Permite la quema de tokens para controlar la emisión de los mismos.
- Pausable: Permite pausar el contrato y que no pueda continuar operando con normalidad.
Nota
Si el contrato comienza con la palabra draft-
, eso significa que el mismo aún se encuentra en etapa de desarrollo.
No necesariamente todos los estándares implementan todas las funcionalidades y extensiones. A veces simplemente no tiene sentido que lo hagan. Inspecciona qué tiene para ofrecer cada estándar antes de comenzar a diseñar tus propios contratos.
Estándar ERC777
OpenZeppelin implementa un cuarto tipo de token que hasta el momento no hemos nombrado. El estándar ERC777 propuesto en el EIP777, propone una extensión del estándar ERC20.
El mismo permite la creación de tokens fungibles, a lo igual que el estándar ERC20, con el agregado de utilizar hooks
para que el contrato ejecute una acción con cada transferencia de tokens.
Esto permite al contrato reaccionar ante eventos, hacer validaciones, notificar a los usuarios, entre otros beneficios.
El estándar ERC777, también implementa el ERC20. Esto los vuelve completamente compatibles. Los tokens emitidos con el estándar ERC777, pueden utilizarse como si fueran ERC20.
Conclusión
Los cuatro tipos de tokens que hasta el momento OpenZeppelin implementa (ERC20, ERC721, ERC777 y ERC1155) tienen sus pros y contras. Explorar cada uno de ellos, apoyarse en la documentación oficial y en la comunidad de desarrolladores te permitirá comprenderlos en profundidad e implementar el correcto en cada caso de uso que debas resolver en un contrato inteligente.
Hay mucho más que puedes aprender aquí en Platzi sobre Tokens con el Curso de Introducción a Tokens en Ethereum y el Curso de Implementación de Tokens en Ethereum: ERC-20. ¡Ojalá nos encontremos ahí!
Contribución creada por: Kevin Fiorentino (Platzi contributor).