ERC-20

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.