Remappings for Contracts with Same Dependencies but different Paths
rzmahmood opened this issue · comments
One of my forge installed libraries uses this import path for it's OZ dependency:
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
Another one of the contracts from a different library uses this import path:
import "openzeppelin-contracts/contracts/access/AccessControl.sol";
My OZ dependency lives in lib/openzeppelin-contracts
My remappings are as such:
@openzeppelin=lib/openzeppelin-contracts/
openzeppelin-contracts/=lib/openzeppelin-contracts/
Unfortunately, the hardhat preprocess does a sed
which means that it does the following:
- Replace
@openzeppelin
withlib/openzeppelin-contracts/
- Replace
lib/openzeppelin-contracts/
withlib/lib/openzeppelin-contracts/
I was able to resolve the issue by changing the order of my remappings to avoid the overlap, but this issue may affect others
yep, i added line = line.replace("lib/lib", "lib")
into hardhat config, that fix the problem