From be468bcf329bd907c61242a589534a6c6d969de8 Mon Sep 17 00:00:00 2001 From: Georgios Konstantopoulos Date: Sun, 19 Dec 2021 22:06:38 +0200 Subject: [PATCH] fix(abigen): use lib for parsing paths correctly in windows --- Cargo.lock | 1 + ethers-contract/ethers-contract-abigen/Cargo.toml | 1 + ethers-contract/ethers-contract-abigen/src/source.rs | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 6a093c02..01654154 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1161,6 +1161,7 @@ dependencies = [ "Inflector", "anyhow", "cfg-if 1.0.0", + "dunce", "ethers-core", "getrandom 0.2.3", "hex", diff --git a/ethers-contract/ethers-contract-abigen/Cargo.toml b/ethers-contract/ethers-contract-abigen/Cargo.toml index c35f1879..ea76e64d 100644 --- a/ethers-contract/ethers-contract-abigen/Cargo.toml +++ b/ethers-contract/ethers-contract-abigen/Cargo.toml @@ -24,6 +24,7 @@ hex = { version = "0.4.2", default-features = false, features = ["std"] } reqwest = { version = "0.11.3", default-features = false, features = ["blocking"] , optional = true } once_cell = "1.8.0" cfg-if = "1.0.0" +dunce = "1.0.2" [target.'cfg(target_arch = "wasm32")'.dependencies] # NOTE: this enables wasm compatibility for getrandom indirectly diff --git a/ethers-contract/ethers-contract-abigen/src/source.rs b/ethers-contract/ethers-contract-abigen/src/source.rs index 0bcef005..1b8ab08b 100644 --- a/ethers-contract/ethers-contract-abigen/src/source.rs +++ b/ethers-contract/ethers-contract-abigen/src/source.rs @@ -229,7 +229,7 @@ fn get_local_contract(path: impl AsRef) -> Result { let root = Path::new(&manifest_path); let mut contract_path = root.join(&path); if !contract_path.exists() { - contract_path = path.canonicalize()?; + contract_path = dunce::canonicalize(&path)?; } if !contract_path.exists() { anyhow::bail!("Unable to find local contract \"{}\"", path.display())