Você está na página 1de 60

Hardhat

Para criar um projeto simples com hardhat


npm init -y
Instala a dependência hardhat em desenvolvimento
npm install -D hardhat
Para criar hardhat Project
npx hardhat E essa seria a estrutura
que teriamos.

Scripts – para os scripts de deployment


Contracts – para os smart
contracts
Hardhat.config.js – é o configuration
file
Test - e isso é para os arquivos de test
Rodamos o commando abaixo para ter uma lista de tasks disponíveis
npx hardhat Usando o commando abaixo mostra todas as contas disponíveis
npx hardhat account

Mas se não me engano precisa rodar um nó antes com o


npx hardhat compile seguinte commando
Compila todos contratos dentro da pasta contratos
após compilar cria 2 pastas
npx hardhat node
Cache-
Artifacts- vamos encontrar json files que sao resultado da
compilação com ABI e bytecode do smart contract Obs:Dependendo da versao do hardhat talvez nao tenha
essa task então seria necessário escreve-la
Nao esqueça de instalar antes:
npm install @nomicfoundation/hardhat-toolbox
Em hardhat é testes são feito com bibliotecas chai e hardhat(para
comunicar com blockchain- ethers library)
Comunica com a rede blockchain

Describe block

Deploy contract

Lemos dados do contrato


Para rodar os testes , execute commando abaixo
npx hardhat test
Quando criamos um hardhat project, temos de criar um simples
deployment script
Primeiro temos de importar hardhat
Depois importamos o smart contract,
Fazemos deploy dele
E para rodar esse script
Para mudar a rede

Hardhat tem um shorthand e autocomplete


npm i -g hardhat-shorthand

Agora para rodar os testes por exemplo basta digita


hh test
Para utilizer a bibliotica ethers juntamente com hardhat
npm install -D @nomiclabs/hardhat-ethers

Instalar a biblioteca – (Nao installer / conflito)


npm install -D ethereum-waffle

Pacote para testar smart contracts – (Nao installer / conflito)


npm install -D @nomiclabs/hardhat-waffle

Instalar testing library – (Nao instalar pq tem


um pacote melhor e mais atualizado por padrao
@nomicfoundation/hardhat-chai-matchers)
npm install -D chai
Não instala o chai
Exemplo de Teste
Trabalha com a biblioteca
de bignumbers
Debugging Smart Contracts
Da o poder do console log do
javascript, mas em solidity
Deploying Smart Contracts
npx hardhat run scripts/deploy_Token.js
Rodaria o script na rede local
Roda blockchain local

Executamos o deploy

Para visualizarmos o arquivo

Deixamos disponivel para o front


a informaçao do contrato
npm add @openzeppelin/contracts
npm add -D @openzeppelin/contracts
obs: use cmd
Hardhat é um ambiente de desenvolvimento para software Ethereum.
Ele consiste em diferentes componentes para editar, compilar, depurar(debug) e
Implantar(deploy) seus contratos inteligentes e dApps, todos trabalhando juntos
para criar um ambiente de desenvolvimento completo.

Hardhat for Visual Studio Code é uma extensão do VS Code que


adiciona suporte de linguagem para Solidity e fornece
integração de editor para projetos Hardhat
O Hardhat Runner é o principal componente com o qual
você interage ao usar o Hardhat. É um executor de
tarefas flexível e extensível que ajuda você a gerenciar e
automatizar as tarefas recorrentes inerentes ao
desenvolvimento de contratos inteligentes e dApps. Hardhat Chai Matchers adiciona recursos específicos do
Ethereum à biblioteca de asserção Chai, tornando seus testes
de contrato inteligentes fáceis de escrever e ler. Entre outras
coisas, você pode afirmar que um contrato disparou certos
O Hardhat vem integrado com o Hardhat Network, um eventos, ou que exibiu uma reversão específica, ou que uma
nó de rede Ethereum local projetado para transação resultou em alterações específicas no Ether de uma
desenvolvimento. Ele permite que você implante seus carteira ou saldo de token
contratos, execute seus testes e depure seu código, tudo
dentro dos limites de sua máquina local.
Hardhat Network Helpers fornece uma interface JavaScript
conveniente para a funcionalidade JSON-RPC da Hardhat
Network

Hardhat Runner é projetado em torno dos conceitos de tarefas e plugins.


Toda vez que você executa o Hardhat na linha de comando,
está executando uma tarefa. Por exemplo, npx hardhat compile
executa a tarefa de compilação interna. As tarefas podem chamar
outras tarefas, permitindo a definição de fluxos de trabalho complexos.
Usuários e plug-ins podem substituir tarefas existentes, tornando esses
fluxos de trabalho personalizáveis e extensíveis.

By default, Hardhat will spin up a new in-memory instance


of Hardhat Network on startup. It's also possible to run Hardhat
Network in a standalone fashion so that external clients can connect to it.
This could be MetaMask, your Dapp front-end, or a script
Setting a project

A mais importante dessas dependências é o


Hardhat Toolbox, um plug-in que agrupa todas as
coisas necessárias para começar a trabalhar com
o Hardhat.
Configuration

++++ ?? O que é esse timeou de 40 segundos


Provavelmente para jwt,
e outros campos
++++

+++

++++

++++
+++

+++

+++
???estudar sobre depois
Compiling your contracts

+++

+++

+++++

Estudar depois
++

? Esqueci a relacao das cidades mas isso é bem insignificante


Testing Contracts

++++

++++
++++

++++++
++++++

+++++
+++++

+++++++

+++++++++
++++

++++++
++++

++++++

Iraddooo
Para tests
+++++ ++++

++++

++++

Gostaria de um exemplo
????? para rodar teste em especifico
Legal, mas nao muito
util imagino, quer dizer é bom Estudar essa pagina, tem várias coisas
Se tiver algum teste com gargalo interessantes para testes
Deploying your contracts

Qual a definição dessa função????


Espera confirmaçao em blocos???
Verifying your contracts

???parece ser interessante


estudar
+++++++
Writing Tasks and scripts

+++++
++++++++

+++++
++
++++

++++

Entender mais
Using the Hardhat console

++++

++++
????, ja nao
++++ está no global
++++ para q fazer
isso???
Ou n esta???
++++
Using TypeScript
++++

+++++
++++

++++++

????

+++em js está no global em ts nao , tem de imortar

2 pontos????
+++++++

????

estudar

++++
??

++++ e estudar
Command-line completion

estuda

estudar
Migrating away from hardhat-waffle

+++++
Getting help
Advanced
Hardhat Runtime Environment(HRE) ??é o temo para quando
Nao precisa explicitar?

++++

+++
O que é a config API,
biblioteca??

???

?? Mas nao é mto importante

+++

++++
Ler depois

Por isso que existe os frameworks

+++++
Compilating Artifacts Voltar e estudar depois

++++

???

++++++
++++
++
Multiple Solidity Versions
+++

+++

+++++++
Agora ficou a duvida como contratos de versao de solidity
Diferentes podem se comunicar e quais os tipos de problemas
que podem acontecer?

Que bom que avisou desse


conflito
Creating a task Ver possibilidades
de task que podem
ser criadas
parece ser bem interessante
++

Estudar depois

++
+++
Que, estudar??????

Entender depois
+++

+++++++++ ++++

queee
Writing scripts with hardhat
Bulding plugins
Integrating with Foundry
Flattening your contracts
Running tests in Visual Studio Code

voltar

Você também pode gostar