ERC-20 es un estándar técnico para los contratos inteligentes en la blockchain de Ethereum. ERC-20 especifica una serie de reglas y funciones que deben cumplir los contratos inteligentes para ser considerados tokens ERC-20 válidos. Esto incluye cosas como cómo se transfieren los tokens, cómo se consulta el saldo de una dirección, y cómo se gestionan los errores.
Los tokens ERC-20 son muy comunes en la industria de las criptomonedas, ya que muchas criptomonedas y tokens son construidos sobre la cadena de bloques Ethereum y cumplen con el estándar ERC-20. Esto permite que los tokens sean intercambiables y se puedan almacenar en carteras compatibles con ERC-20.
Además, ERC-20 también permite la creación de aplicaciones descentralizadas (dApps) en la cadena de bloques de Ethereum.
Ejemplo de un contrato inteligente de un token ERC-20 en Solidity.
pragma solidity ^0.8.0;
contract MyToken {
// Variables de estado
string public name;
string public symbol;
uint8 public decimals;
uint256 public totalSupply;
// Mapeo para almacenar los saldos de cada dirección
mapping(address => uint256) public balanceOf;
// Eventos
event Transfer(address indexed from, address indexed to, uint256 value);
// Constructor para asignar valores iniciales al token
constructor() public {
name = "My Token";
symbol = "MYT";
decimals = 18;
totalSupply = 1000000 * (10 ** uint256(decimals));
balanceOf[msg.sender] = totalSupply;
}
// Función para transferir tokens
function transfer(address _to, uint256 _value) public {
require(balanceOf[msg.sender] >= _value && _value > 0);
balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;
emit Transfer(msg.sender, _to, _value);
}
}
Este contrato tiene algunas funciones básicas como:
- Variables de estado: Almacena información básica sobre el token, como el nombre, símbolo, número de decimales y suministro total.
- Mapeo balanceOf: Almacena el saldo de cada dirección.
- Evento Transfer: Se desencadena cuando se realiza una transferencia de tokens.
- Constructor: Es el primer código que se ejecuta al crear el contrato, se utiliza para inicializar las variables de estado.
- Función transfer: Se utiliza para transferir tokens de una dirección a otra.
Este es un ejemplo básico y se pueden agregar otras funciones y características al contrato para hacerlo más completo y seguro.