foundry-rs / hardhat-foundry-template

Minimal template to get started with Foundry + Hardhat

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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:

  1. Replace @openzeppelin with lib/openzeppelin-contracts/
  2. Replace lib/openzeppelin-contracts/ with lib/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