No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

脷ltima oportunidad para asegurar tu aprendizaje por 1 a帽o a precio especial

Antes: $249

Currency
$189/a帽o

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscr铆bete

Termina en:

0D
11H
50M
59S

Hardhat

13/15
Recursos

Hardhat es una de las herramientas m谩s usadas para el desarrollo blockchain. Desde la compilaci贸n, testing, despliegue y el debugging de los contratos. Su red, 鈥淗ardhat Network鈥, es una red de prueba basada en la de Ethereum, aunque ofrece unas ventajas que te ayudar谩n a identificar errores en tus contratos de una manera m谩s pr谩ctica. Esto es algo muy poderoso de la herramienta.

Utiliza npm con su paquete Hardhat, que se apoya de otros plug-ins para aumentar su funcionalidad.

Iniciemos con Hardhat

  • Entra a tu terminal, y en tu directorio principal crea una carpeta nueva: $ take hola-hardhat
  • Ya adentro en la carpeta, inicia npm: $ npm init
  • Deja la informaci贸n por defecto del package.json
  • Ahora, ejecuta el siguiente comando para la instalaci贸n: $ npm install --save-dev hardhat
  • Al t茅rmino de la instalaci贸n, ejecuta: $ npx hardhat
  • Al estar instalado, puedes empezar un nuevo proyecto. Te ofrecer谩 algunas opciones de arranque r谩pido. Elige la opci贸n 鈥淐reate a basic sample project鈥 para conocer un poco m谩s sobre el ambiente de trabajo.

Despu茅s de que termine de descargar los archivos, 谩brelos en VS Code con el comando; $ code .

Con estas carpetas y archivos, ya cuentas con lo necesario para empezar a trabajar en el desarrollo de contratos. El apartado de 鈥渃ontracts鈥 es en donde guardar谩s los archivos con extensi贸n 鈥.sol鈥, los que entiende Solidity. Dale una revisada a todo, para que empieces a familiarizarte 馃槂

Es solo una prueba

Recuerda que esta red es algo que te permite conocer de forma similar c贸mo se trabaja dentro de la red Ethereum. Hardhat te provee de cuentas con balances de prueba para que las uses, pero no debes mezclar estas cuentas para transacciones reales.

Por 煤ltimo, para desplegar un contrato, lo haremos junto con un script que se adjunt贸 en la descarga:

  • Ejecuta: $ npx hardhat compile
  • Despu茅s: $ npx hardhat run scripts/sample-script.js
  • Ver谩s el mensaje: 鈥淗ello, Hardhat!鈥, adem谩s de la direcci贸n donde se encuentra el contrato
    Listo, es as铆 de f谩cil. Es importante recalcar la particular ventaja con Hardhat, pues al hacer un fork de la red de Ethereum, puedes trabajar con protocolos que ya se encuentran funcionando en la red principal, lo cual te permitir谩 darte una mejor idea de lo que podr谩s hacer en el entorno de verdad.

Aporte creado por: Luis Enrique Herrera.

Aportes 47

Preguntas 18

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Hola, si tambi茅n tuvieron este error

Error: Cannot find module '@nomiclabs/hardhat-waffle'

Lo soluciones instalando el paquete

npm i @nomiclabs/hardhat-waffle

y luego ya puedes ver las accounts y el resto.

Personalmente me gusta mucho hardhat y lo he estado usando mas. Consejo para los que van empezando: denle sin miedo y si pueden metanse a hackathones en la plataforma devPost. Platzi es muuuuy bueno en sus cursos pero la experiencia de construir en un hackathon ayuda mucho a acelerar el proceso

Hardhat nos ayuda en el desarrollo de forma local con Solidity.

  • Ventajas: Compilaci贸n, despliegue y test e incluso hasta el debug de los contratos.

Lo mejor de todo es que estar谩s desarrollando en una red de prueba llamada Hardhat Network basada en la red de Ethereum pero con algunas mejoras que te permitir谩n identificar errores en tus contratos inteligentes.

Los proyectos de Hardhat, son proyectos de NPM con el paquete Hardhat instalado que se ayuda de otros plugins para incrementar sus funcionalidades.

Instalaci贸n de ambiente de desarrollo

1.- Crear carpeta y entrar en ella:

$  mkdir hola-hardhat
$  cd hola-hardhat

2.- Creando el proyecto en NPM (dar Enter a todas las preguntas para dejar por defecto):

$  npm init 

3.- Instalando HardHat en el proyecto:

$  npm install --save-dev hardhat
$  npx hardhat  //Ejecutando hardhat 

4.- Ver谩s la informaci贸n de bienvenida en la terminal y las opciones de crear un proyecto. Seleccionar 鈥淐reate a basic sample project鈥, esto nos crear谩 un proyecto de pruebas con archivos b谩sicos.

Para ver las direcciones de prueba con las que estaremos interactuando. Son s贸lo de prueba, no las utilices para recibir tokens verdaderos de mercado.

$  npx hardhat accounts

Para compilar el proyecto:

$  npx hardhat compile

Para desplegar el proyecto:

$  npx hardhat run scripts/sample-script.js

Al ejecutar esto debe aparecer el mensaje 鈥淗ello Hardhat!鈥 lo que indicar谩 que todo ha ido bien y veremos la direcci贸n en la que se encuentra el contrato.

Truffle te crea un entorno un poco m谩s amigable y m谩s modesto de usar, tiene un plus en su suite, y es** Drizzle** donde te proporciona una especie de plantillas para poder hacerle el FrontEnd a tu app con web3.js. Aunque, ha diferencia de Hardhat, es m谩s robusto es m谩s potente, tiene una red completa para poder testear, hacer deploys y corregir bugs. Las dos son buenas para desarrollar, incluyendo Remix, pero al momento de crear un proyecto m谩s profesional, se usa Hardhat para poder tener la linea de herramientas que facilitar谩n el desarrollo de tus proyectos.

Truffle me pareci贸 mas completo, y amigable por su interfaz grafica y cli.

El comando

npx hardhat accounts

ya no aparece en la nueva versi贸n de Hardhat.

En cambio, pueden utilizar

npx hardhat node

que inicializa el nodo y muestra las Account con las Private Key.

Comandos de la clase

npm init
npm install --save-dev hardhat
npx hardhat

>create a basic sample project
code .
npx hardhat accounts

npx hardhat compile
npx hardhat run scripts/sample-script.js

En otro curso que tom茅 comentaban que Hardhat se usa m谩s en entornos profesionales. En lo personal, me gusta que hardhat tiene todo lo que necesitamos para desarrollar. Sin embargo, me interesa saber m谩s sobre herramientas para frontend como drizzle, de Truffle

Comandos usas en esta clase:

  • mkdir hola-hardhat
  • cd hola-hardhat
  • npm init
  • ls
  • npm install --save-dev hardhat
  • npx hardhat

鈥揝eleccionar create a basic sample project

  • y

  • code . // abrir los archivos en visual studio code si lo tienes instalado

  • npx hardhat account //ver direcciones hardhat de prueba para probar contratos, enviar fondos, recibir fondos, etc.

  • npx hardhat compile

  • npx hardhat run scripts/sample-scripts-js 77 ejecutar script de prueba de nuestro contrato

Tuve varios problemas, detallo como resolv铆 algunos:

  • El error con el mensaje 鈥淐annot find module 鈥楡nomicfoundation/hardhat-toolbox鈥欌 lo solucion茅 digitnado el en terminal:
 npm i @nomicfoundation/hardhat-toolbox
  • No se reconoce el comando 鈥渁ccounts鈥, eso se debe a que en la nueva versi贸n de Hardhat, el programa de ejemplo ha cambiado, pero si desean conocer las wallets deben copias y pegar el siguiente codigo en el archivo hardhat.config.js
task("accounts", "Prints the list of accounts", async () => {
  const accounts = await ethers.getSigners();

  for (const account of accounts) {
    console.log(account.address);
  }
});

Luego de eso no deber铆an tener problema al usar el comando

npx hardhat accounts

Si han tenido problemas para el deploy de "Hello, hardhat!"
Usar este comando:

$ node scripts/sample-script.js

Si les da el error Error HH303: Unrecognized task accounts, probablemente tengan instalada la version 2.9.9 o posterior de Hardhat.
.
Para ver las cuentas, se puede usar el comando npx hardhat node.
.
Por ejemplo:

$ npx hardhat --version
2.10.1

$ npx hardhat accounts
Error HH303: Unrecognized task accounts
For more info go to https://hardhat.org/HH303 or run Hardhat with --show-stack-traces

$ npx hardhat node
Started HTTP and WebSocket JSON-RPC server at https://127.0.0.1:8545/

Accounts
========

WARNING: These accounts, and their private keys, are publicly known.
Any funds sent to them on Mainnet or any other live network WILL BE LOST.

Account #0: 0xf39Fd6e51a...ffFb92266 (10000 ETH)
Private Key: 0xac0974bec39a1...478cbed5efcae784d7bf4f2ff80

Account #1: 0x70997970C51812...b50e0d17dc79C8 (10000 ETH)
Private Key: 0x59c6995e998f97a5a...9dc9e86dae88c7a8412f4603b6b78690d
.
.
.

Referencia:
鈥渘px hardhat accounts鈥 not available in Hardhat latest version 2.9.9
https://stackoverflow.com/questions/72943829/npx-hardhat-accounts-not-available-in-hardhat-latest-version-2-9-9

Tambi茅n para los que tengan m谩s conocimiento de Python que de Javascript pueden usar :
Brownie
Es similar a Truffle pero basado en python.

npm init -y : Para dejar toda la configuracion por defecto de una.
npm install --save-dev hardhat : Instalar hardhat
npx hardhat : npx nos ayuda a evitar el versionado y la instalaci贸n de paquetes innecesarios que s贸lo queremos probarnpm install --save-dev hardhat@^2.6.7 @nomiclabs/hardhat-waffle@^2.0.0 ethereum-waffle@^3.0.0 chai@^4.2.0 @nomiclabs/hardhat-ethers@^2.0.0 ethers@^5.0.0npx hardhat accounts: Direcciones de prueba. NO usar para transacciones reales.npx hardhat compile: Compilar proyectonpx hardhat run scripts/sample-script.js` : despliegue del contrato en la red local

ando remal los comandos no me funcionan para instalar todo lo necesario

Para compartirles la siguiente experiencia y una duda al respecto: Con el Windows PowerShell como administrador se mostr贸 el error HH12 al correr el comando npx hardhat. Ninguna acci贸n corrigi贸 este error pasando desde la reinstalaci贸n del npm, hacer downgrades, implementaci贸n de varios de los aportes del curso, entre otras. Entonces ingres茅 el comando npx hardhat en la consola cmder y se present贸 la informaci贸n esperada (ver imagen). Quedo atento por si hay alguna configuraci贸n para el Windows PowerShell o mas bien es recomendable el uso de consolas alternativas.

Ojo con la advertencia:
WARNING: These accounts, and their private keys, are publicly known. Any funds sent to them on Mainnet or any other live network WILL BE LOST.

ADVERTENCIA: estas cuentas y sus claves privadas son de conocimiento p煤blico. Todos los fondos que se les env铆en en Mainnet o cualquier otra red en vivo SE PERDER脕N.

RESUMEN CLASE 12:
HARDHAT

I.- INSTALAR HARDHAT

1.- Crear un directorio para el proyecto

$ mkdir hola-hardhat

2.- Dirigirse al directorio creado

$ cd hola-hardhat

3.- Iniciar npm 鈥淒ejar la informacion por defecto del package.json鈥 haciendo ENTER

$ npm init

4.- Para instalar Hardhate ejecutar el siguiente comando

$ npm install --save-dev hardhat

5.- Ejecutar el siguiente comando

$ npx hardhat

6.- Empesar un nuevo proyecto

  • Elegir la opcion 鈥淐reate a basic sample proyect鈥 y ENTER

7.- Abrir VSCode desde el directorio actual

$ code .

II.- CUENTAS DE PRUEBA POR DEFECTO EN HARDHAT (No usar para enviar ni recibir fondos)

Para ver las direcciones desde las cuales estaremos interactuando, para probar nuestros contratos, enviar y recibir fondos.

$ npx hardhat accounts

III.- PARA DESPLEGAR SMART CONTRACT

1.- Para Compilar Ejecutar el siguiente comando

$ npx hardhat compile

2.- Para hacer Deploy ejecutar el siguiente comando

$ npx hardhat run scripts/sample-script.js

Truffle suite is sweeter and hardhat is more robust.

Error: error:0308010C:digital envelope routines::unsupported

me sirvio esto en windows

set NODE_OPTIONS=鈥搊penssl-legacy-provider

Con el comando

npm init -y

se puede generar el json con los mismos resultados que la clase pero sin tener que responder las preguntas, o sea autom谩ticamente.

Para los que tengan problemas, la solucion esta en hacerle downgrade a su node, que lo pueden realizar con el siguiente comando:

nvm install <version>.

Dentro de version escriben una version actual a la que hayan instalado, por el momento la ultima version estable que use y les recomiendo es la

16.12.0.

Aqui les dejo la guia oficial de hardhat por si tienen algun incoveniente a la hora de ejecutar los comandos https://hardhat.org/hardhat-runner/docs/getting-started

Ejecut茅 el c贸digo en la terminal de Bash y me arrojo el siguiente error:

Luego abr铆 la Powershell de Windows y volv铆 a ejecutar el c贸digo, est谩 vez el resultao fue el esperado:

Muchas gracias ya pude instalar las 3 herramientas. Ahora estoy entendiendo mucho m谩s lo que significa el trabajo en el mundo blockchain. Muchas gracias.

En mi caso uso una raspberry pi 4B y llego a compilar con hardhat, sin embargo truffle me vota varios errores

La verdad esta librer铆a me gusto porque se instala por proyecto pero la verdad me gusto m谩s truffle por la vista que tiene de escritorio.
Aunque la verdad son muy similares al momento de compilar y desplegar el contrato. Incre铆ble curso!

Me gusta que Truffle tiene librer铆as para front, no s茅 si HardHat tambi茅n

Desde mi punto de vista como principiante, al ser nuevo en este mundo, y viendo estos 3 entornos de desarrollo, me gusto bastante truffle por que brinda diferentes herramientas para cada cosa, para crear contratos (truffle), para crear la blockchain local (ganache) y manipular el frontend (drizzle), adem谩s me pareci贸 ordenada y segmentada, y se me hizo muy facil entenderla.

RemixIDE me parece tambien genial para iniciarte en solidity he ir practicando y aprendiendo nuevos conceptos.

Hardhat tambi茅n esta bacana y se ve que es muy potente y ofrece mas caracter铆sticas que los anteriores ambientes no poseen, pero me resulto un poco confusa.

Aun as铆 esta genial y cada entorno cumple para ciertos prop贸sitos

Interesante. No hab铆a o铆do hablar de esta herramienta. Uso RemixIDE para prueba de conceptos y la Truffle suite para mis proyectos

Si no os funciona, borrad todo y empezad de nuevo, desde cero. Debes seguir todos los pasos y ver que todos los archivos se guarden en la misma carpeta, en Usuario o en el Sistema.

Si est谩n usando windows y usan el powershell para esta pr谩ctica y no les sale, usen el cmd en modo administrador, y ya ah铆 les sale la pr谩ctica.

me ha gustado hardhat porque es simple y ademas podemos ir directamente ha como poder desarollar los contratos mas alla de hello mundo.
Me gustaria tambien poder crear aplicaciones reales al mundo de blockchain con los smart contracts

Saludos

Ventaja de utilizar Hardhat

Te permite realizar todo el proceso de desarrollo facilmente desde la
compilaci贸n, despliegue, test y hasta el debug de los contratos.

Tambi茅n se puede usar el comando 鈥渘pm init -y鈥 y deja todas las opciones por defecto

underestimating alert: USAR ALGUNA VERSI脫N ANTERIOR A LA 17 DE NODE.JS, al menos por el momento.

Personalmente, agregu茅 en la opci贸n de build en el package.json que los proveedores SSL fueran legados, as铆:

esta me gusta m谩s

Hola si alguien tiene el siguiente error

Error: Cannot find module '@nomiclabs/hardhat-waffle'

Tiene que instalar

npm install --save-dev @nomiclabs/hardhat-waffle ethereum-waffle chai @nomiclabs/hardhat-ethers ethers
#

npx hardhat accounts se listas las direcciones con las cuales vamos a interactuar

Para desplegar el proyecto: npx hardhat run scripts/sample-script.js

Para copilar el proyecto: npx hardhat compile

Para visualizar las direcciones con las que estaremos interactuando para probar nuestros contratos, enviar fondos, recibir fondos con: npx hardhat accounts

Instala Hardhat con : npx hardhat

Para instalar hardHat en nuestro proyecto ingresamos en siguiente comando: npm install --save-dev hardhat

Para crear un nuevo proyecto con : npm init