Skip to main content

Crate foundry_compilers

Crate foundry_compilers 

Source
Expand description

§foundry-compilers

Compiler abstraction and Foundry project implementation.

Originally part of ethers-rs as ethers-solc, this is the compilation backend for Foundry.

§Features

  • full: Enables async + svm-solc.
  • async: Adds async methods using tokio.
  • svm-solc: Enables svm to auto-detect and manage solc builds.
  • project-util: Utilities for creating and testing project workspaces.
  • rustls: Uses rustls for TLS (enabled by default).

Re-exports§

pub use resolver::Graph;
pub use foundry_compilers_artifacts as artifacts;
pub use compilers::*;

Modules§

buildinfo
Represents an entire build
cache
Support for compiling contracts.
compilers
contracts
error
flatten
info
Commonly used identifiers for contracts in the compiled output.
many
output
The output of a compiled project
project
Manages compiling of a Project
report
Subscribe to events in the compiler pipeline
resolver
Resolution of the entire dependency graph for a project.
sources
utils
Utility functions

Structs§

AggregatedCompilerOutput
The aggregated output of (multiple) compile jobs
ArtifactFile
Represents an artifact file representing a crate::compilers::CompilerContract
ArtifactId
Represents unique artifact metadata for identifying artifacts on output
Artifacts
Represents a set of Artifacts
ConfigurableArtifacts
An Artifact implementation that can be configured to include additional content and emit additional files
ExtraOutputFiles
Determines what to emit as an additional file
ExtraOutputValues
Determines the additional values to include in the contract’s artifact file
HardhatArtifacts
Hardhat style artifacts handler
MinimalCombinedArtifacts
An Artifact implementation that uses a compact representation
MinimalCombinedArtifactsHardhatFallback
An Artifacts handler implementation that works the same as MinimalCombinedArtifacts but also supports reading hardhat artifacts if an initial attempt to deserialize an artifact failed
OutputContext
Additional context to use during ArtifactOutput::on_output()
Project
Represents a project workspace and handles solc compiling of all contracts in that workspace.
ProjectBuilder
ProjectCompileOutput
Contains a mixture of already compiled/cached artifacts and the input set of sources that still need to be compiled.
ProjectPaths
This is a subset of ProjectPathsConfig that contains all relevant folders in the project
ProjectPathsConfig
Where to find all files or where to write them
SolcConfig
The config to use when compiling the contracts
TestFileFilter
An FileFilter that matches all solidity files that end with .t.sol

Enums§

PathStyle
SparseOutputFilter
A type that can apply a filter to a set of preprocessed Sources in order to set sparse output for specific files

Traits§

Artifact
A trait representation for a crate::compilers::CompilerContract artifact
ArtifactOutput
Handler invoked with the output of solc
FileFilter
A predicate property that determines whether a file satisfies a certain condition

Functions§

apply_updates
Utility function to apply a set of updates to provided sources.
replace_source_content
Utility function to change source content ranges with provided updates. Assumes that the updates are sorted.

Type Aliases§

Updates
Updates to be applied to the sources.