26 releases (17 stable)
2.0.14 | Mar 6, 2024 |
---|---|
2.0.11 | Nov 16, 2023 |
2.0.8 | Jul 15, 2023 |
2.0.2 | Mar 28, 2023 |
0.1.1 | Nov 29, 2021 |
#4 in #solc
139,205 downloads per month
Used in 40 crates
(8 directly)
1.5MB
34K
SLoC
ethers-solc
Utilities for working with native solc
and compiling projects.
Warning
This crate is deprecated in favor of
foundry-compilers
(foundry-rs/compilers). See #2667 for more information.
To also compile contracts during cargo build
(so that ethers abigen!
can pull in updated abi automatically) you can configure a ethers_solc::Project
in your build.rs
file
First add ethers-solc
to your cargo build-dependencies.
Once you compiled the project, you can configure cargo change detection with rerun_if_sources_changed
, so that cargo will execute the build.rs
file if a contract in the sources directory has changed
[build-dependencies]
ethers-solc = { git = "https://github.com/gakonst/ethers-rs" }
use ethers_solc::{Project, ProjectPathsConfig};
fn main() {
// configure the project with all its paths, solc, cache etc.
let project = Project::builder()
.paths(ProjectPathsConfig::hardhat(env!("CARGO_MANIFEST_DIR")).unwrap())
.build()
.unwrap();
let output = project.compile().unwrap();
// Tell Cargo that if a source file changes, to rerun this build script.
project.rerun_if_sources_changed();
}
Dependencies
~13–30MB
~473K SLoC