Desplegar en Celo con Hardhat
Cómo desplegar un contrato inteligente en Celo testnet, mainnet o una red local usando Hardhat.
Introducción a Hardhat
Hardhat es un entorno de desarrollo para compilar, desplegar, probar y depurar tu software Ethereum o Celo. Ayuda a los desarrolladores a administrar y automatizar las tareas recurrentes que son inherentes al proceso de construcción de contratos inteligentes y dApps, además de introducir fácilmente más funcionalidad alrededor de este flujo de trabajo. Esto significa compilar, ejecutar y probar contratos inteligentes en el centro mismo.
Prerequisitos
Para desplegar en Celo usando Hardhat, debes tener Celo configurado en tu entorno local. Si prefieres desplegar sin un entorno local, puedes desplegar usando Remix o Replit.
Crear un proyecto Hardhat
Elige uno de los siguientes elementos para preparar una dApp para desplegar en Celo.
- Sigue las instrucciones de instalación e inicio rápido para construir y desplegar tu contrato inteligente.
Actualizar el archivo hardhat.config.js
Abre hardhat.config.js en un editor de texto y reemplaza su contenido con este código de configuración de Celo. Este código es similar a la configuración de Hardhat con algunas actualizaciones de configuración necesarias para desplegar en una red de Celo. Necesitarás crear un archivo .env
en el directorio raíz del proyecto e instala dotenv
con npm o yarn para leer el .process.env.MNEMONIC
en el archivo de configuración.
Conectarse a una red local
Usando Celo Ganache CLI creas cuentas de prueba en el localhost en el puerto 7545. La configuración de red privada se conecta a tu localhost en este puerto y te da acceso a tus cuentas en ganache-cli.
localhost: {
url: "http://127.0.0.1:7545"
},
Si eliges configurar una cadena de desarrollo local, tu blockchain también será alojada en una red privada en localhost. Esta misma configuración se puede utilizar para conectarse a la cadena de desarrollo local.
Conectarse a Testnet usando Forno
Usar Forno te permite conectarte al blockchain principal de Celo sin ejecutar un nodo local. La configuración de testnet utiliza Forno para conectarse al Celo Testnet (Alfajores) usando HDWalletProvider y el mnemónico almacenado en tu archivo .env.
alfajores: {
url: "https://alfajores-forno.celo-testnet.org",
accounts: {
mnemonic: process.env.MNEMONIC,
path: "m/44'/52752'/0'/0"
},
chainId: 44787
}
Celo utiliza una ruta de derivación de cuenta diferente a Ethereum, así que tienes que especificar "m/44'/52752'/0'/0" como la ruta.
Conectar a Mainnet usando Forno
Usar Forno te permite conectarte al blockchain principal de Celo sin ejecutar un nodo local. La configuración de mainnet utiliza Forno para conectarse al Celo Mainnet usando HDWalletProvider y el mnemónico almacenado en tu archivo .env.
celo: {
url: "https://forno.celo.org",
accounts: {
mnemonic: process.env.MNEMONIC,
path: "m/44'/52752'/0'/0"
},
chainId: 42220
}
Forno es un servicio de nodo alojado en cLabs para interactuar con la red de Celo. Este te permite conectarte al blockchain Celo sin tener que ejecutar tu propio nodo.
Desplegar a Celo
Ejecuta el siguiente comando desde el directorio raíz del proyecto para desplegar en testnet Celo Alfajores.
npx hardhat run scripts/sample-script.js --network alfajores
...o ejecuta este comando para desplegar en el mainnet de Celo.
npx hardhat run scripts/sample-script.js --network celo
Ver despliegue del contrato
Copia tu dirección de contrato desde la terminal y ve al explorador de bloques para buscar tu contrato desplegado. Cambia entre redes para encontrar tu contrato usando el menú desplegable de la barra de búsqueda.
Obtén más información sobre la construcción y despliegue de dApps usando la documentación de HardHat.