Este repositório foi desenvolvido como parte do Bootcamp O Grande Código da NearX, com o objetivo de explorar e consolidar conhecimentos em desenvolvimento de contratos inteligentes utilizando o ecossistema Foundry.
- Foundry: Toolkit rápido, portátil e modular para desenvolvimento de aplicações Ethereum. Inclui:
- Forge: Ferramenta para compilar, testar, fazer fuzzing, depurar e implantar contratos Solidity.
- Cast: Canivete suíço para interagir com contratos inteligentes EVM, enviar transações e obter dados da blockchain.
- Anvil: Nó Ethereum local para desenvolvimento, similar ao Ganache ou Hardhat Network.
- Chisel: REPL para Solidity, rápido e utilitário.
- Solidity: Linguagem de programação para contratos inteligentes na Ethereum.
- Cursor IDE: Ambiente de desenvolvimento com IA integrada, que facilita o aprendizado e a correção de erros.
O projeto segue a estrutura padrão de um projeto Foundry:
src/
: Contém os contratos Solidity.test/
: Contém os testes para os contratos.script/
: Scripts para implantação e interações com os contratos.lib/
: Dependências externas.foundry.toml
: Arquivo de configuração do Foundry.
forge build
forge test
'''bash forge fmt '''
'''bash anvil '''
'''bash forge script script/Counter.s.sol:CounterScript --rpc-url <seu_rpc_url> --private-key <sua_chave_privada> '''
'''bash cast '''
O Foundry oferece uma abordagem moderna e eficiente para o desenvolvimento de contratos inteligentes, com destaque para:
- Desempenho Superior: Compilação e testes mais rápidos em comparação com outras ferramentas como Hardhat.
- Testes Avançados: Suporte a fuzzing e testes de invariantes diretamente em Solidity.
- Integração Facilitada: Ferramentas como Anvil e Cast simplificam o desenvolvimento e a interação com contratos.
Essas características tornam o Foundry uma escolha ideal para projetos profissionais, especialmente aqueles que visam integrar soluções como o ZkVerify, onde desempenho e confiabilidade são cruciais.
A implementação do token ERC-20 foi realizada utilizando a linguagem Solidity, seguindo as diretrizes estabelecidas pelo padrão. O contrato inclui as funções obrigatórias, como totalSupply, balanceOf, transfer, approve, transferFrom e allowance, garantindo a conformidade com o padrão e a interoperabilidade com outras aplicações e serviços na rede Ethereum.
Além disso, foram adicionadas funções auxiliares para facilitar operações como mint e burn, permitindo a criação e destruição de tokens conforme necessário. Essa abordagem proporciona flexibilidade na gestão do fornecimento total de tokens e é útil para simulações e testes em ambientes de desenvolvimento.
Este projeto serve como um ambiente de testes e aprendizado para o desenvolvimento de contratos inteligentes utilizando o Foundry. A combinação do Foundry com o Cursor IDE proporciona uma experiência de desenvolvimento aprimorada, facilitando a identificação e correção de erros, além de acelerar o processo de aprendizado.