Installieren | Benutzerbuch | Entwicklerdokumente | Crate-Dokumente
Foundry ist ein blitzschnelles, portables und modulares Toolkit für die Ethereum-Anwendungsentwicklung, geschrieben in Rust.
Die Gießerei besteht aus:
Forge : Ethereum-Testframework (wie Truffle, Hardhat und DappTools).
Besetzung : Schweizer Taschenmesser für die Interaktion mit EVM-Smart-Verträgen, das Senden von Transaktionen und das Abrufen von Kettendaten.
Anvil : Lokaler Ethereum-Knoten, ähnlich wie Ganache, Hardhat Network.
Meißel : Schnelle, praktische und ausführliche Solidität REPL.
Benötigen Sie Hilfe beim Einstieg in Foundry? Lesen Sie die ? Gießereibuch (WIP)!
Siehe die Installationsanleitung im Buch.
Wenn bei der Installation Probleme auftreten, lesen Sie „Hilfe bekommen“ und die FAQ.
Schnelle und flexible Kompilierungspipeline
Automatische Erkennung und Installation der Solidity-Compiler-Version
Inkrementelle Kompilierung und Zwischenspeicherung : Nur geänderte Dateien werden neu kompiliert
Parallele Kompilierung
Unterstützung nicht standardmäßiger Verzeichnisstrukturen (z. B. Hardhat-Repos)
Tests werden in Solidity geschrieben (wie in DappTools)
Schnelles Fuzz-Testen mit Verkleinerung der Eingaben und Drucken von Gegenbeispielen
Schneller Remote-RPC-Forking-Modus , der die asynchrone Infrastruktur von Rust wie Tokio nutzt
Flexible Debug-Protokollierung
DappTools-Stil, unter Verwendung der von DsTest
ausgegebenen Protokolle
Im Hardhat-Stil mit dem beliebten console.sol
Vertrag
Portabel (5–10 MB) und einfach zu installieren, ohne dass Nix oder ein anderer Paketmanager erforderlich ist
Schnelles CI mit der Foundry GitHub-Aktion.
Forge ist sowohl beim Kompilieren (unter Nutzung von Ethers-Solc) als auch beim Testen recht schnell.
Sehen Sie sich die Benchmarks unten an. Weitere Benchmarks finden Sie im Ankündigungsbeitrag zu v0.2.0 und im Convex Shutdown Simulation-Repository.
Benchmarks testen
Projekt | Schmiede | DappTools | Beschleunigung |
---|---|---|---|
Übertragungen11/Solmate | 2,8s | 6:34 Minuten | 140x |
reflexer-labs/geb | 0,4s | 23s | 57,5x |
Rari-Kapital/Gewölbe | 0,28s | 6,5s | 23x |
Hinweis: In den oben genannten Benchmarks wurde die Kompilierung immer übersprungen
Zusammenstellungs-Benchmarks
Fazit: Die Forge-Kompilierung ist durchweg um den Faktor 1,7–11,3 schneller, je nach Umfang des Cachings.
Cast ist ein Schweizer Taschenmesser für die Interaktion mit Ethereum-Anwendungen über die Befehlszeile.
Weitere Dokumentation finden Sie im Cast-Paket.
foundry.toml
Foundry ist so konzipiert, dass es sehr konfigurierbar ist. Sie können Foundry mithilfe einer Datei namens foundry.toml
im Stammverzeichnis Ihres Projekts oder in einem anderen übergeordneten Verzeichnis konfigurieren. Alle verfügbaren Optionen finden Sie im Konfigurationspaket.
Die Konfiguration kann durch Profile beliebig benannt werden. Das Standardprofil heißt default
(siehe „Standardprofil“).
Sie können ein anderes Profil mithilfe der Umgebungsvariablen FOUNDRY_PROFILE
auswählen. Sie können Teile Ihrer Konfiguration auch mit Umgebungsvariablen mit Präfix FOUNDRY_
oder DAPP_
überschreiben, z. B. FOUNDRY_SRC
.
forge init
erstellt eine einfache, erweiterbare Datei foundry.toml
.
Um Ihre aktuelle Konfiguration anzuzeigen, führen Sie forge config
aus. Um nur grundlegende Optionen (wie mit forge init
festgelegt) anzuzeigen, führen Sie forge config --basic
aus. Dies kann verwendet werden, um mit forge config --basic > foundry.toml
eine neue Datei foundry.toml
zu erstellen.
Standardmäßig zeigt forge config
das aktuell ausgewählte Foundry-Profil und seine Werte an. Es akzeptiert auch die gleichen Argumente wie forge build
.
Sie können Ihre .dapprc
Umgebungsvariablen wiederverwenden, indem Sie source .dapprc
ausführen, bevor Sie ein Foundry-Tool verwenden.
Weitere Einrichtungs- und Konfigurationsanleitungen finden Sie im Foundry Book:
VSCode einrichten
Shell-Autovervollständigungen
Sehen Sie sich unsere Beitragsrichtlinien an.
Prüfen Sie zunächst, ob die Antwort auf Ihre Frage im Buch oder in der entsprechenden Kiste zu finden ist.
Falls die Antwort nicht dabei ist:
Treten Sie dem Support-Telegram bei, um Hilfe zu erhalten, oder
Eröffnen Sie eine Diskussion mit Ihrer Frage, oder
Öffnen Sie ein Problem mit dem Fehler
Wenn Sie einen Beitrag leisten oder der Diskussion der Mitwirkenden folgen möchten, können Sie unser Haupttelegramm nutzen, um mit uns über die Entwicklung von Foundry zu chatten!
Foundry ist eine Reinraum-Neufassung des Test-Frameworks DappTools. Ohne die jahrelange Arbeit des DappHub-Teams wäre dies nicht möglich gewesen.
Matthias Seitz: Erstellte Ethers-Solc, das Rückgrat unserer Compilation-Pipeline, sowie unzählige Beiträge zu Ethers, insbesondere den abigen
-Makros.
Rohit Narurkar: Erstellt den Rust Solidity-Versionsmanager svm-rs, den wir zur automatischen Erkennung und Verwaltung mehrerer Solidity-Versionen verwenden.
Brock Elmore: Für die Erweiterung der Cheatcodes der VM und die Implementierung einer strukturierten Anrufverfolgung, eine wichtige Funktion für das Debuggen von Smart-Contract-Aufrufen.
Alle anderen Mitwirkenden an den Ethers-RS- und Foundry-Repositories und Chatrooms.