diff --git a/ethers-solc/src/project_util/mod.rs b/ethers-solc/src/project_util/mod.rs index e1bf7956..107dc360 100644 --- a/ethers-solc/src/project_util/mod.rs +++ b/ethers-solc/src/project_util/mod.rs @@ -191,8 +191,8 @@ impl TempProject { pragma solidity {}; contract {} {{}} "#, + version.as_ref(), name, - version.as_ref() ), ) } @@ -219,8 +219,8 @@ contract {} {{}} pragma solidity {}; contract {} {{}} "#, + version.as_ref(), name, - version.as_ref() ), ) } diff --git a/ethers-solc/tests/project.rs b/ethers-solc/tests/project.rs index ca1f6a9c..a468c43c 100644 --- a/ethers-solc/tests/project.rs +++ b/ethers-solc/tests/project.rs @@ -2128,3 +2128,27 @@ fn can_handle_conflicting_files() { ] ); } + +#[test] +fn can_add_basic_contract_and_library() { + let mut project = TempProject::::dapptools().unwrap(); + + let remapping = project.paths().libraries[0].join("remapping"); + project + .paths_mut() + .remappings + .push(Remapping::from_str(&format!("remapping/={}/", remapping.display())).unwrap()); + + let src = project.add_basic_source("Foo.sol", "^0.8.0").unwrap(); + + let lib = project.add_basic_source("Bar.sol", "^0.8.0").unwrap(); + + let graph = Graph::resolve(project.paths()).unwrap(); + assert_eq!(graph.files().len(), 2); + assert_eq!(graph.files().clone(), HashMap::from([(src, 0), (lib, 1),])); + + let compiled = project.compile().unwrap(); + assert!(compiled.find_first("Foo").is_some()); + assert!(compiled.find_first("Bar").is_some()); + assert!(!compiled.has_compiler_errors()); +}