Skip to main content

Desplegar en Celo con Hardhat

Cómo implementar un contrato inteligente en Celo testnet, mainnet o una red local usando Hardhat.


Introduction to 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.

Prerequisites

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.

Create Hardhat Project

Elige uno de los siguientes elementos para preparar una dApp para desplegar en Celo.

Update the hardhat.config.js file

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.

Conectarse a una red local

Usar Celo Ganache CLI crea 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"
},
tip

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 de prueba de Celo sin ejecutar un nodo local. La configuración de testnet utiliza Forno para conectarse al Celo Testnet (Alfajores) usando HDWalletProvider y el mnemonic 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
}
note

Celo utiliza una ruta de derivación de cuenta diferente a Ethereum, así que tiene 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 mnemonic almacenado en tu archivo .env.

   celo: {
url: "https://forno.celo.org",
accounts: {
mnemonic: process.env.MNEMONIC,
path: "m/44'/52752'/0'/0"
},
chainId: 42220
}
tip

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.

Deploy to 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

View Contract Deployment

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.

github

tip

Obtén más información sobre la construcción y despliegue de dApps usando la documentación de HardHat.

Verify Smart Contract

Usando Blockscout

La verificación de un contrato inteligente permite a los desarrolladores revisar su código desde el explorador de bloques de Celo.

  • Navega a la pestaña Código en la página Explorador para la dirección de tu contrato
  • Haz clic en Verificar & Publicar para entrar en la página de verificación del contrato inteligente

github

  • Sube tu contrato inteligente (ejemplo: HelloCelo.sol) y tu archivo .json (ejemplo: HelloCelo.json) encontrado en la carpeta build > contracts.

github

  • Haz clic en Verify & Publish
  • Ve a la página de detalles de la dirección del contrato en el explorador de bloques, utiliza los paneles Code, Read Contracty Write Contract para ver e interactuar con tu contrato inteligente desplegado.

Hardhat-deploy plugin

You can read an in depth guide about how to deploy and verify contracts on Celo programmatically using the hardhat-deploy plugin here.