Crates.io | ethers-solc |
lib.rs | ethers-solc |
version | 2.0.14 |
source | src |
created_at | 2021-11-23 13:47:54.811958 |
updated_at | 2024-03-06 17:20:35.188506 |
description | Utilites for working with solc |
homepage | https://github.com/gakonst/ethers-rs |
repository | https://github.com/gakonst/ethers-rs |
max_upload_size | |
id | 486242 |
size | 767,894 |
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();
}