No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Compilando y desplegando contratos inteligentes

17/27
Recursos

El proceso de desarrollo de un contrato, pasando por las configuraciones necesarias y pruebas del mismo, finaliza con el despliegue del contrato a la blockchain deseada.

Despliegue de contrato con Hardhat

Para desplegar tu contrato, deberás compilar el mismo. Hardhat también nos ayuda con eso gracias al comando npx hardhat compile. Verás que el mismo crea varios directorios en tu proyecto con el bytecode del contrato desarrollado. Recuerda que la EVM no entiende nada de Solidity, los contratos deben compilarse para que sean interpretados correctamente con la red de Ethereum.

Además del bytecode del contrato, encontrarás un archivo denominado Application Binary Interface o ABI. El ABI, es un JSON que podemos utilizar desde cualquier cliente para saber cómo interactuar con el contrato. Qué métodos posee, qué parámetros recibe, etc. En próximas clases, utilizaremos el mismo para tipar la información y comunicarnos con el smart contract desplegado en la blockchain.

Luego de compilar tu contrato, de haber configurado el archivo hardhat.config.js y desarrollado el script de despliegue con Hardhat, el comando npx hardhat run scripts/deploy.js --network goerli será el encargado de desplegar el contrato, en este caso, en Goerli.

Observarás en la consola de desarrollo que, luego del lanzamiento exitoso del contrato, este entrega una dirección totalmente única que utilizarás para localizar tu smart contract en la blockchain en cuestión donde haya sido desplegado.

Cada blockchain, sea la mainnet o una red de prueba, tendrá su propio explorador que te permitirá visualizar y obtener más información sobre lo que está ocurriendo en la red. Haciendo uso del explorador de Goerli, más la dirección del contrato, podrás visualizar el estado de este y corroborar su correcto despliegue y todas las transacciones que interactúan con el mismo.

Saber utilizar los exploradores de blockchain será clave para convertirte en un gran desarrollador web3.

Hasta este punto, solo queda felicitarte por haber desarrollado y desplegado tu primer smart contract con Hardhat.


Contribución creada por: Kevin Fiorentino (Platzi Contributor).

Aportes 9

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

En las ultimas versiones de hardhat con el código de despliegue que dan en este capitulo saca error. TypeError: no matching function (argument=“key”, value=“address”, code=INVALID_ARGUMENT, version=6.6.1)

Para arreglarlo hay que cambiar en deploy.js en la linea 9 counter.address por counter.getAddress()

Comandos importantes de esta clase:

  • npx hardhat compile

  • npx hardhat run scripts/deploy.js --network goerli

Tomar en cuenta que la red de Goerli esta deprecada al dia de hoy (marzo 2023), por lo que se recomienda utilizar la red de Sepolia que funciona de la misma manera.

npx hardhat compile
npx hardhat run scripts/deploy.js --network sepolia

Cuando te devuelva la dirección del contrato, puedes validarlo en etherscan:
https://sepolia.etherscan.io/

Espero puedan agregar una clase usando Sepolia

Si obtienes el error:

TypeError: (intermediate value) is not iterable
at main (/Users/…/scripts/deploy.js:4:22)
at processTicksAndRejections (node:internal/process/task_queues:95:5)

.

El error es en el archivo deploy.js, en la línea const [deployer] = await ethers.getSigner()

Se debe cambiar por const deployer = await ethers.getSigner()

Dejo mis apuntes, más el codigo de la clase.

Para los que usan ubuntu y les da error por la versión de node que usan les dejo este enlace para que puedan actualizarla

https://www.stewright.me/2023/04/install-nodejs-18-on-ubuntu-22-04/

En sepolia:

require("@nomicfoundation/hardhat-toolbox");

/** @type import('hardhat/config').HardhatUserConfig */
module.exports = {
  solidity: "0.8.18",
  networks: {
    sepolia: {
      url: " TU URL ",
      accounts: [" TU LLAVE PRIVADA "],
    }
  },
};