Skip to content

Instantly share code, notes, and snippets.

@HiroNakamura
Created March 15, 2025 15:28
Show Gist options
  • Save HiroNakamura/04198115883a4e7f303f1e14c52bc734 to your computer and use it in GitHub Desktop.
Save HiroNakamura/04198115883a4e7f303f1e14c52bc734 to your computer and use it in GitHub Desktop.
Solidity en ejemplos

Probar código

Programando en Solidity

Cómo Probar el Contrato

Abre Remix.

  1. Crea un nuevo archivo (MiPrimerToken.sol) y pega el código.
  2. Compila el Contrato: Ve a la pestaña "Solidity Compiler".
  3. Selecciona la versión 0.8.0 o superior.
  4. Haz clic en "Compile MiPrimerToken.sol".

Despliega el Contrato:

  1. Ve a la pestaña "Deploy & Run Transactions".
  2. Selecciona el entorno "JavaScript VM" para pruebas locales.
  3. En el campo "Deploy", ingresa el _supplyInicial (por ejemplo, 1000000).
  4. Haz clic en "Deploy". Interactúa con el Contrato:

Una vez desplegado, verás las funciones del contrato. Prueba la función transfer enviando tokens a otra dirección (puedes generar cuentas en Remix).

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
// Contrato ERC-20 básico
contract MiPrimerToken {
// Variables de estado
string public nombre = "MiPrimerToken";
string public simbolo = "MPT";
uint256 public totalSupply;
// Mapeo para almacenar los balances de cada cuenta
mapping(address => uint256) public balanceOf;
// Evento para notificar transferencias
event Transfer(address indexed from, address indexed to, uint256 value);
// Constructor: inicializa el supply total y lo asigna al creador del contrato
constructor(uint256 _supplyInicial) {
totalSupply = _supplyInicial;
balanceOf[msg.sender] = _supplyInicial; // El creador del contrato recibe todos los tokens
}
// Función para transferir tokens
function transfer(address _to, uint256 _value) public returns (bool success) {
require(balanceOf[msg.sender] >= _value, "Saldo insuficiente"); // Verifica que el remitente tenga suficientes tokens
balanceOf[msg.sender] -= _value; // Resta los tokens del remitente
balanceOf[_to] += _value; // Suma los tokens al destinatario
emit Transfer(msg.sender, _to, _value); // Emite el evento de transferencia
return true;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment