Installer | Livre d'utilisateur | Documents pour développeurs | Documents de caisse
Foundry est une boîte à outils ultra rapide, portable et modulaire pour le développement d'applications Ethereum écrite en Rust.
La fonderie se compose de :
Forge : Framework de test Ethereum (comme Truffle, Hardhat et DappTools).
Cast : couteau suisse pour interagir avec les contrats intelligents EVM, envoyer des transactions et obtenir des données en chaîne.
Anvil : Nœud Ethereum local, semblable à Ganache, Hardhat Network.
Chisel : REPL de solidité rapide, utilitaire et verbeux.
Besoin d'aide pour démarrer avec Foundry ? Lire le ? Livre de fonderie (WIP) !
Voir le guide d'installation dans le livre.
Si vous rencontrez des problèmes lors de l'installation, consultez Obtenir de l'aide et la FAQ.
Pipeline de compilation rapide et flexible
Détection et installation automatiques de la version du compilateur Solidity
Compilation incrémentale et mise en cache : seuls les fichiers modifiés sont recompilés
Compilation parallèle
Prise en charge des structures de répertoires non standard (par exemple, dépôts Hardhat)
Les tests sont écrits en Solidity (comme dans DappTools)
Tests de fuzz rapides avec réduction des entrées et impression de contre-exemples
Mode de fork RPC à distance rapide , exploitant l'infrastructure asynchrone de Rust comme Tokyo
Journalisation de débogage flexible
Style DappTools, utilisant les journaux émis par DsTest
Style casque de sécurité, utilisant le contrat populaire console.sol
Portable (5-10 Mo) et facile à installer sans nécessiter Nix ou tout autre gestionnaire de paquets
CI rapide avec l'action Foundry GitHub.
Forge est assez rapide à la fois en matière de compilation (en tirant parti d'Ethers-solc) et de tests.
Voir les repères ci-dessous. D'autres tests de référence peuvent être trouvés dans le message d'annonce de la v0.2.0 et dans le référentiel Convex Shutdown Simulation.
Tests de référence
Projet | Forge | Outils Dapp | Accélération |
---|---|---|---|
transmissions11/solmate | 2,8 s | 6m34s | 140x |
reflexer-labs/geb | 0,4 s | 23s | 57,5x |
Rari-Capital/coffres | 0,28 s | 6,5 s | 23x |
Remarque : Dans les tests ci-dessus, la compilation était toujours ignorée.
Repères de compilation
À retenir : la compilation de Forge est systématiquement plus rapide d'un facteur de 1,7 à 11,3x, en fonction de la quantité de mise en cache impliquée.
Cast est un couteau suisse pour interagir avec les applications Ethereum depuis la ligne de commande.
Plus de documentation peut être trouvée dans le package cast.
foundry.toml
Foundry est conçu pour être très configurable. Vous pouvez configurer Foundry à l'aide d'un fichier appelé foundry.toml
à la racine de votre projet ou de tout autre répertoire parent. Voir le package de configuration pour toutes les options disponibles.
La configuration peut être arbitrairement espaceée par les profils. Le profil par défaut est nommé default
(voir "Profil par défaut").
Vous pouvez sélectionner un autre profil à l'aide de la variable d'environnement FOUNDRY_PROFILE
. Vous pouvez également remplacer certaines parties de votre configuration à l'aide de variables d'environnement préfixées FOUNDRY_
ou DAPP_
, comme FOUNDRY_SRC
.
forge init
crée un fichier foundry.toml
de base et extensible.
Pour voir votre configuration actuelle, exécutez forge config
. Pour voir uniquement les options de base (telles que définies avec forge init
), exécutez forge config --basic
. Cela peut être utilisé pour créer un nouveau fichier foundry.toml
avec forge config --basic > foundry.toml
.
Par défaut, forge config
affiche le profil de fonderie actuellement sélectionné et ses valeurs. Il accepte également les mêmes arguments que forge build
.
Vous pouvez réutiliser vos variables d'environnement .dapprc
en exécutant source .dapprc
avant d'utiliser un outil Foundry.
Vous pouvez trouver des guides d'installation et de configuration supplémentaires dans le Foundry Book :
Configuration de VSCode
Complétion automatique du shell
Consultez nos directives de contribution.
Tout d’abord, voyez si la réponse à votre question se trouve dans le livre ou dans la caisse correspondante.
Si la réponse n'est pas là :
Rejoignez le Telegram d'assistance pour obtenir de l'aide, ou
Ouvrez une discussion avec votre question, ou
Ouvrir un problème avec le bug
Si vous souhaitez contribuer ou suivre la discussion des contributeurs, vous pouvez utiliser notre télégramme principal pour discuter avec nous du développement de Foundry !
Foundry est une réécriture en salle blanche du framework de test DappTools. Rien de tout cela n'aurait été possible sans le travail de l'équipe DappHub au fil des années.
Matthias Seitz : Création d'ethers-solc qui est l'épine dorsale de notre pipeline de compilation, ainsi que d'innombrables contributions à ethers, en particulier les macros abigen
.
Rohit Narurkar : Création du gestionnaire de versions Rust Solidity svm-rs que nous utilisons pour détecter et gérer automatiquement plusieurs versions de Solidity.
Brock Elmore : Pour étendre les codes de triche de la VM et implémenter le suivi des appels structuré, une fonctionnalité essentielle pour le débogage des appels de contrats intelligents.
Tous les autres contributeurs aux référentiels et salons de discussion ethers-rs & foundry.