26 lines
783 B
Markdown
26 lines
783 B
Markdown
|
# ethers-solc
|
||
|
|
||
|
Utilities for working with native `solc` and compiling projects.
|
||
|
|
||
|
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
|
||
|
|
||
|
```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();
|
||
|
println!("{}", output);
|
||
|
}
|
||
|
```
|