Closed andrewwahid closed 1 week ago
I am closing this as a duplicate of #2811.
This is a known bug that is difficult for us to fix due to the way Hardhat leverages solc in combination with node_modules
.
We are currently working on a new major version of Hardhat that properly supports this.
Version of Hardhat
2.22.6
What happened?
When I import contract A.sol from
"@npm-package/contracts/A.sol"
if A.sol imports B.sol from"@npm-package2/contracts/B.sol"
I expect that hardhat uses/compiles B.sol using"project/node_modules/@npm-package/node_modules/@npm-package2/contracts/B.sol"
But what happens is that hardhat compiles B.sol using"project/node_modules/@npm-package2/contracts/B.sol"
, which causes conflicts when multiple npm packages imports same contracts but in different versionsMinimal reproduction steps
Please note that
account-abstraction-06
depends on@openzeppelin/contracts": "^4.2.0
Andaccount-abstraction-07
depends on@openzeppelin/contracts": "^5.0.0
import "account-abstraction-07/contracts/core/BasePaymaster.sol";
to Lock.sol"project/node_modules/account-abstraction-07/node_modules/openzeppelin/contracts/access/Ownable.sol"
Search terms
conflict, versions, compile, imports