
Aqui estão algumas coisas a considerar ao escolher entre Hardhat e Foundry.

A escolha das ferramentas certas para o desenvolvimento do seu dapp não afeta apenas a produtividade, mas também impacta a eficácia dos testes, da implantação e da manutenção de smart contracts. Neste blog, comparamos duas opções populares entre os desenvolvedores de dapps Ethereum: Foundry e Hardhat, com foco nos requisitos de instalação, fluxos de trabalho de teste e implantação, além de aspectos técnicos específicos e limitações.
O Hardhat é um ambiente de desenvolvimento consolidado, projetado para ajudar desenvolvedores a gerenciar e automatizar tarefas envolvidas no desenvolvimento de smart contracts. É conhecido pela sua natureza flexível e adaptável. O Hardhat conta com a Hardhat Network, uma rede Ethereum local desenvolvida para fins de desenvolvimento, que também facilita testes, implantação e depuração.
Os desenvolvedores podem interagir diretamente com smart contracts implantados na Hardhat Network por meio de um console interativo, oferecendo um ambiente local abrangente e adaptado para tarefas de desenvolvimento. O Hardhat também oferece suporte a um robusto ecossistema de plugins, permitindo que os desenvolvedores ampliem suas capacidades com facilidade. No entanto, alguns usuários podem achar a configuração inicial do Hardhat complexa.
Por outro lado, o Foundry é um toolkit de desenvolvimento relativamente novo que prioriza velocidade e confiabilidade. Ele é construído sobre o Forge, um poderoso framework de testes que permite aos desenvolvedores escrever, compilar e testar smart contracts de forma eficiente. Um dos principais diferenciais do Foundry são suas capacidades de teste rápido, já que o framework de testes Forge acelera significativamente os tempos de execução dos testes, permitindo que os desenvolvedores iterem com mais agilidade.
Além disso, o Foundry inclui ferramentas nativas de depuração que ajudam os desenvolvedores a diagnosticar e corrigir problemas diretamente no ambiente. O Foundry também se integra perfeitamente a outras ferramentas do ecossistema Ethereum, facilitando um processo de desenvolvimento mais fluido. No entanto, por ser relativamente novo, o Foundry pode não contar com o mesmo suporte comunitário extenso disponível para ferramentas mais consolidadas.
Para esta seção, utilizaremos um smart contract básico de soma aleatória. Esse smart contract será o mesmo para o Hardhat e o Foundry; no entanto, a configuração do projeto diferirá ligeiramente entre os dois frameworks.
Para começar a usar o Hardhat, você precisa ter o Node.js instalado na sua máquina. Com isso configurado, você pode criar um novo projeto Hardhat seguindo estas etapas:
Inicialize um novo projeto Node.js:
Instale o Hardhat:
npm install --save-dev hardhatCrie um projeto Hardhat:
npx hardhatSiga as instruções para criar um projeto básico. Selecione "Create an empty hardhat.config.js" para uma configuração mínima. Escolha criar um projeto de exemplo. Isso configura um ambiente Hardhat com todas as configurações necessárias.
Contrato: Coloque seu contrato RandomSum na pasta contracts.
O Foundry usa Rust, portanto você precisará ter o Rust instalado no seu sistema. Com o Rust pronto, você pode instalar o Foundry executando:
Instale o Foundry:
Inicialize um novo projeto Foundry:
Contrato: Coloque seu contrato RandomSum no diretório src.
Blockchain local: Use a Hardhat Network, que é executada automaticamente quando você realiza tarefas como testes ou implantação de contratos.
Script de implantação: Crie um script em scripts/deploy.js:
Executar a implantação: Execute a implantação usando:
npx hardhat run scripts/deploy.js --network localhostBlockchain local: O Foundry usa o anvil, um nó Ethereum local. Execute-o em um terminal separado para iniciar seu nó local.
anvilScript de implantação: Use o comando forge create diretamente:
forge create RandomSum --private-key YOUR_PRIVATE_KEY --rpc-url Configuração de rede: Configure a rede desejada no hardhat.config.js, adicionando uma seção para as configurações de rede (ex.: Sepolia).
Implantação: Execute o mesmo script de implantação com a opção de rede alterada para Sepolia.
Configuração de rede: Nenhum arquivo de configuração adicional é necessário; especifique a rede diretamente no comando.
Implantação: use:
forge create RandomSum --private-key YOUR_PRIVATE_KEY --rpc-url Escreva os testes: Crie um arquivo de teste em test/randomSum.js usando JavaScript:
Execute os testes: Execute usando:
npx hardhat testSe você encontrar problemas com os testes, basta adicionar a função loadFixture de @nomicfoundation/hardhat-toolbox/network-helpers.
Os principais benefícios de usar o loadFixture são:
Ele configura um ambiente limpo para cada teste revertendo para um snapshot.
É mais eficiente do que reimplantar contratos para cada teste.
Permite compartilhar o código de configuração entre múltiplos testes.
Escreva os testes: Adicione um arquivo de teste em test/RandomSum.t.sol usando Solidity:
Execute os testes: Use:
forge testA escolha entre Hardhat e Foundry geralmente depende das habilidades da equipe e das necessidades específicas do projeto. Se a equipe tem proficiência em JavaScript e precisa de ampla integração com tecnologias web, o Hardhat pode ser a melhor escolha. Seu robusto ecossistema de plugins e ambiente flexível o tornam ideal para projetos que exigem um alto grau de personalização e interação com diversas tecnologias web.
Por outro lado, se o projeto demanda ciclos de desenvolvimento rápidos com foco exclusivo em smart contracts, o Foundry oferece uma opção atraente e eficiente que mantém tudo dentro do ecossistema Solidity. Sua velocidade e suporte nativo ao Solidity podem aumentar significativamente a produtividade de equipes dedicadas ao desenvolvimento de smart contracts.
Em última análise, ambas as ferramentas têm seus pontos fortes, e a escolha certa depende dos requisitos únicos do seu projeto e da expertise da sua equipe.
Traduzido por IA. Pode conter erros. Por favor, verifique sempre as informações.