|
1 | | -use std::path::{Path, PathBuf}; |
| 1 | +use std::{ |
| 2 | + path::{Path, PathBuf}, |
| 3 | + process::Output, |
| 4 | +}; |
2 | 5 |
|
3 | | -use foundry_compilers::{solc::Solc, Project, ProjectPathsConfig}; |
| 6 | +use foundry_compilers::{Project, ProjectPathsConfig}; |
4 | 7 |
|
5 | 8 | pub fn compile_contract() -> Result<(), anyhow::Error> { |
6 | | - // configure the project with all its paths, solc, cache etc. |
| 9 | + let contracts_path = Path::new(env!("CARGO_MANIFEST_DIR")) |
| 10 | + .to_owned() |
| 11 | + .join(PathBuf::from("src/solidity")); |
| 12 | + |
7 | 13 | let project = Project::builder() |
8 | | - .paths( |
9 | | - ProjectPathsConfig::hardhat( |
10 | | - &Path::new(env!("CARGO_MANIFEST_DIR")) |
11 | | - .to_owned() |
12 | | - .join(PathBuf::from("src/contracts")), |
13 | | - ) |
14 | | - .unwrap(), |
15 | | - ) |
| 14 | + .paths(ProjectPathsConfig::hardhat(&contracts_path).unwrap()) |
| 15 | + .set_no_artifacts(false) |
16 | 16 | .build(Default::default()) |
17 | 17 | .unwrap(); |
18 | | - // https://github.com/foundry-rs/compilers/blob/main/crates/compilers/tests/project.rs#L2627 |
19 | 18 |
|
20 | | - println!("{:?}", project); |
| 19 | + println!("Project:\n {:?}\n", project); |
21 | 20 | let output = project.compile().unwrap(); |
22 | 21 |
|
23 | | - println!("{:?}\n", output); |
| 22 | + println!("Output:\n {:?}\n", output); |
24 | 23 | Ok(()) |
25 | 24 | } |
0 commit comments