Requisitos previos
Preparación del contrato
El siguiente contrato de ejemplo se usará a lo largo de esta guía:
Despliega con Foundry
Foundry es un toolkit rápido basado en Rust para desarrollo en Ethereum.
-
Instala Foundry:
Puede que tengas que ejecutar source a tu archivo
.bashrc o .zshrc
-
Configura un nuevo proyecto Foundry:
-
Actualiza
foundry.toml con la configuración de la testnet de Plasma:
-
Crea un archivo
.env en la raíz de tu proyecto:
-
Carga las variables de entorno:
-
Guarda el código del contrato como
src/SimpleStorage.sol y luego despliégalo:
Foundry generará el hash de la transacción de despliegue y la dirección del contrato:
-
Prueba tu contrato desplegado usando la herramienta cast de Foundry. Primero, lee los datos almacenados:
-
Luego actualiza los datos y léelos nuevamente:
Esto debería generar algo como:
Despliega con Hardhat
Hardhat es un framework de desarrollo completo con amplio soporte de plugins.
- Asegúrate de tener lo siguiente:
- Node.js 20+ (requerido para compatibilidad con Hardhat moderno)
- Familiaridad con el desarrollo en Ethereum
- Una wallet con tokens de testnet (consulta los detalles de la cadena testnet)
Node.js 18 e inferiores ya no son soportados por Hardhat y pueden causar problemas de compatibilidad con módulos ES.
-
Verifica la versión de Node.js:
Si estás usando Node.js 18 o inferior, actualiza a Node.js 20+:
-
Inicializa un nuevo proyecto Hardhat:
Si encuentras problemas de compatibilidad, revisa la documentación de Hardhat para las últimas versiones soportadas.
Elige Create a JavaScript project cuando se te solicite.
-
Actualiza
hardhat.config.js:
-
Crea un archivo
.env en la raíz de tu proyecto:
-
Crea el directorio scripts y el script de despliegue:
-
Crea
scripts/deploy.js:
-
Guarda el código del contrato como
contracts/SimpleStorage.sol y luego despliégalo:
-
¡Listo!
Despliega con Ethers.js
Ethers.js provee un flujo de despliegue programático y mínimo.
-
Crea un nuevo proyecto:
-
Crea un archivo
.env en la raíz de tu proyecto:
-
Crea
compile.js para compilar tu contrato Solidity:
-
Guarda tu contrato como
SimpleStorage.sol y luego compílalo:
Esto debería generar:
-
Crea
deploy.js:
-
Ejecuta el script de despliegue:
Esto debería generar algo como:
Verifica el despliegue
Después de desplegar con cualquiera de los métodos anteriores, verifica el despliegue de tu contrato.
Solución de problemas
Problemas de compatibilidad con módulos ES
Si encuentras errores como Error [ERR_REQUIRE_ESM]: require() of ES Module, esto generalmente significa:
-
La versión de Node.js es demasiado antigua: Actualiza a Node.js 20+ como se menciona en los requisitos previos
-
Desajuste en la versión de la dependencia: Si no es posible actualizar Node.js, puedes degradar la dependencia problemática:
Advertencias de versión de Node.js
Si ves advertencias sobre versiones no soportadas de Node.js:
Actualiza a Node.js 20+ siguiendo los pasos en la sección de requisitos previos.
Fondos insuficientes
Asegúrate de que tu wallet tenga suficientes tokens de testnet. Visita un faucet de testnet.
Configuración de red incorrecta
Verifica que tu configuración de red coincida con los detalles de la cadena testnet.
Falla en la estimación de gas
Establece límites de gas explícitos en tu configuración de despliegue: