ethers-solc 2.0.14

Utilites for working with solc
Documentation
# ethers-solc

Utilities for working with native `solc` and compiling projects.

> **Warning**
> 
> This crate is deprecated in favor of [`foundry-compilers`]https://crates.io/foundry-compilers ([foundry-rs/compilers]https://github.com/foundry-rs/compilers). See [#2667]https://github.com/gakonst/ethers-rs/issues/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

```toml
[build-dependencies]
ethers-solc = { git = "https://github.com/gakonst/ethers-rs" }
```

```rust
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();
}
```