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=鈥渒ey鈥, value=鈥渁ddress鈥, 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 "],
    }
  },
};