solidstate-network/solidstate-solidity

Supports Interface shadow

julesGoullee opened this issue · 3 comments

When deploying with hardhat-deploy build in diamond, erc165 clash with the diamantaire also implementing erc165.
As supportedInferface needs to be added to diamondStorage array, the need for the erc165 interface into the solidstate contract enter into conflict.

Did the discussion the the EIP-2535 Discord resolve your issue?

The hardhat-deploy plugin uses one of the reference diamond implementations, but those are not explicitly supported by SolidState. The reason is that some of their design elements, while suitable for a reference implementation, cause inconsistencies when used within the context of the larger development ecosystem. Therefore, it is possible to use SolidState in combination with the reference implementations, but some overrides may be necessary.

I understand a bit more the issue now yes. From dev point of view will be great to have consistency across the ecosystem tools, I will raise this issue on hardhat side as well

Part of the problem here is that diamondCut is complicated. I hope to address this in the future with some utility functions. Not yet sure what the implementation will look like, will track in #65.