ERC-20
Clase 6 de 14 • Curso de Tokens en Ethereum: Fundamentos
Resumen
ERC-20 es un protocolo diseñado para crear interoperabilidad entre los tokens y los smart contracts. De esta forma se evitan movimientos innecesarios que se requerían para verificar el funcionamiento de cada uno de ellos.
Así es como los tokens comparten la capacidad de ser manipulados en distintas plataformas, como las wallets y los exchanges, e interactuar con cualquier contrato dentro de la red.
Finalidad del estándar ERC-20
El ERC-20 fue creado para los tokens fungibles. Indica que es indiferente tener un token u otro de este estándar, pues representan lo mismo, tal y como el sistema monetario tradicional. Así como este, los tokens ERC-20 son divisibles (decimales) para distintas operaciones (staking, intercambio, compras, derecho de voto, etc.).
Funciones de un token basado en ERC-20
Estas son las funciones que un token debe cumplir para que sea compatible con el estándar ERC-20:
name(): Nombre (opcional)
symbol(): Símbolo (opcional)
decimals(): Posiciones decimales que determinan la divisibilidad del token (opcional)
totalSupply(): Cantidad total de tokens disponibles
balanceOf(adress _owner): Cantidad de tokens que posee la cuenta

transfer(address _to, uint256 _value): Transfiere tokens de la cuenta de la persona que llama la función al destinatario
transferFrom(address _from, address _to, uint256 _value): Transfiere tokens de la cuenta _form a la cuenta _to

approve(address _spender, uint256 _value): Establece la cantidad máxima permitida para gastar
allowance(address _owner, address _spender): Devuelve la cantidad que _spender aún puede retirar de _owner

El nombre y el símbolo son para que sean reconocidos dentro de las distintas exchanges.
El total de decimales por defecto en Ethereum es de dieciocho (18).
Eventos de un token basado en ERC-20
Además, se cuenta con dos tipos de eventos:
event Transfer(address indexed _from, address indexed _to, uint256 _value)
event Approval(address indexed _owner, address indexed _spender, uint256 _value)

Existen más de quinientos mil contratos de tokens ERC-20 dentro de Ethereum, aunque existe uno muy particular conocido como Wrapped tokens.
Contribución creada con los aportes de: Luis E. Herrera