From 64ac7d01abe25a52e8eabb00e14cb0fd43db669b Mon Sep 17 00:00:00 2001 From: derch28 <67139425+derch28@users.noreply.github.com> Date: Tue, 9 Aug 2022 11:21:52 -0500 Subject: [PATCH] solc: fix bug in basic lib and basic contract generation (#1580) --- ethers-solc/src/project_util/mod.rs | 4 ++-- ethers-solc/tests/project.rs | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) 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()); +}