Instalar | Livro do usuário | Documentos do desenvolvedor | Documentos da caixa
Foundry é um kit de ferramentas extremamente rápido, portátil e modular para desenvolvimento de aplicativos Ethereum escrito em Rust.
A fundição consiste em:
Forge : estrutura de teste Ethereum (como Truffle, Hardhat e DappTools).
Elenco : canivete suíço para interagir com contratos inteligentes EVM, enviar transações e obter dados em cadeia.
Bigorna : nó Ethereum local, semelhante ao Ganache, Hardhat Network.
Cinzel : REPL de solidez rápido, utilitário e detalhado.
Precisa de ajuda para começar a usar o Foundry? Leia o? Livro de Fundição (WIP)!
Consulte o guia de instalação no livro.
Se você estiver enfrentando algum problema durante a instalação, consulte Obtendo ajuda e as Perguntas frequentes.
Pipeline de compilação rápido e flexível
Detecção e instalação automática de versão do compilador Solidity
Compilação incremental e armazenamento em cache : somente arquivos alterados são recompilados
Compilação paralela
Suporte a estruturas de diretório não padrão (por exemplo, repositórios Hardhat)
Os testes são escritos em Solidity (como em DappTools)
Teste fuzz rápido com redução de entradas e impressão de contra-exemplos
Modo de bifurcação RPC remoto rápido , aproveitando a infraestrutura assíncrona do Rust como o tokio
Registro de depuração flexível
Estilo DappTools, usando logs emitidos do DsTest
Estilo capacete, usando o popular contrato console.sol
Portátil (5-10 MB) e fácil de instalar sem a necessidade de Nix ou qualquer outro gerenciador de pacotes
CI rápido com a ação Foundry GitHub.
Forge é bastante rápido tanto na compilação (aproveitando o ethers-solc) quanto nos testes.
Veja os benchmarks abaixo. Mais benchmarks podem ser encontrados na postagem de anúncio v0.2.0 e no repositório Convex Shutdown Simulation.
Testes de referência
Projeto | Forja | DappTools | Aceleração |
---|---|---|---|
transmissões11/solmate | 2,8s | 6m34s | 140x |
reflexer-labs/geb | 0,4s | 23s | 57,5x |
Rari-Capital/cofres | 0,28s | 6,5s | 23x |
Nota: Nos benchmarks acima, a compilação sempre foi ignorada
Benchmarks de compilação
Conclusão: a compilação do Forge é consistentemente mais rápida por um fator de 1,7 a 11,3x, dependendo da quantidade de cache envolvida.
Cast é um canivete suíço para interagir com aplicativos Ethereum a partir da linha de comando.
Mais documentação pode ser encontrada no pacote cast.
foundry.toml
O Foundry foi projetado para ser muito configurável. Você pode configurar o Foundry usando um arquivo chamado foundry.toml
na raiz do seu projeto ou em qualquer outro diretório pai. Consulte o pacote de configuração para todas as opções disponíveis.
A configuração pode ter nomes arbitrários por perfis. O perfil padrão é denominado default
(consulte "Perfil padrão").
Você pode selecionar outro perfil usando a variável de ambiente FOUNDRY_PROFILE
. Você também pode substituir partes de sua configuração usando variáveis de ambiente prefixadas FOUNDRY_
ou DAPP_
, como FOUNDRY_SRC
.
forge init
cria um arquivo foundry.toml
básico e extensível.
Para ver sua configuração atual, execute forge config
. Para ver apenas as opções básicas (conforme definido com forge init
), execute forge config --basic
. Isso pode ser usado para criar um novo arquivo foundry.toml
com forge config --basic > foundry.toml
.
Por padrão, forge config
mostra o perfil de fundição atualmente selecionado e seus valores. Ele também aceita os mesmos argumentos do forge build
.
É possível reutilizar suas variáveis de ambiente .dapprc
executando source .dapprc
antes de usar uma ferramenta Foundry.
Você pode encontrar guias adicionais de instalação e configuração no Foundry Book:
Configurando o VSCode
Preenchimentos automáticos de shell
Veja nossas diretrizes de contribuição.
Primeiro, veja se a resposta à sua pergunta pode ser encontrada no livro ou na caixa relevante.
Se a resposta não estiver lá:
Junte-se ao Telegram de suporte para obter ajuda, ou
Abra uma discussão com sua pergunta ou
Abra um problema com o bug
Se você quiser contribuir, ou acompanhar a discussão dos colaboradores, você pode usar nosso telegrama principal para conversar conosco sobre o desenvolvimento do Foundry!
Foundry é uma reescrita simples da estrutura de testes DappTools. Nada disso teria sido possível sem o trabalho da equipe DappHub ao longo dos anos.
Matthias Seitz: Criou o ethers-solc que é a espinha dorsal do nosso pipeline de compilação, bem como inúmeras contribuições para o ethers, em particular as macros abigen
.
Rohit Narurkar: Criou o gerenciador de versões Rust Solidity svm-rs que usamos para detectar automaticamente e gerenciar várias versões do Solidity.
Brock Elmore: Para estender os cheatcodes da VM e implementar o rastreamento estruturado de chamadas, um recurso crítico para depurar chamadas de contratos inteligentes.
Todos os outros colaboradores dos repositórios e salas de chat do ethers-rs & Foundry.