Skip to content

Remappings for Contracts with Same Dependencies but different Paths #11

@rzmahmood

Description

@rzmahmood

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions