Closed ItsNickBarry closed 1 year ago
I've published a partial fix for this issue that I believe should work for this particular example you brought up. But it will fail for a case with one more layer of indirection. Fixing that will require a bit more work.
Thanks. That's probably sufficient for now. I believe the only case where I have that many orders of removal is that of the "Mock" contracts, but those would be replaced by this plugin anyway.
Experiencing the same issue, cannot find the import of EnumerableSet:
Please try adding an explicit import for EnumerableSet as a workaround.
This should be fixed now in 0.3.11.
The SolidState library uses the convention of importing entities explicitly rather than entire files, in order to avoid polluting the global namespace:
This plugin doesn't account for that import style when generating code.
See these files:
ECDSAMultisigWallet
: https://github.com/solidstate-network/solidstate-solidity/blob/master/contracts/multisig/ECDSAMultisigWallet.solECDSAMultisigWalletInternal
: https://github.com/solidstate-network/solidstate-solidity/blob/master/contracts/multisig/ECDSAMultisigWalletInternal.solIECDSAMultisigWallet
: https://github.com/solidstate-network/solidstate-solidity/blob/master/contracts/multisig/IECDSAMultisigWallet.solIECDSAMultisigWalletInternal
: https://github.com/solidstate-network/solidstate-solidity/blob/master/contracts/multisig/IECDSAMultisigWalletInternal.solFile 1 inherits an internal function from file 2, which relies on a type defined in file 4. However, file 1 imports file 4 only indirectly, via file 3. This causes the generated "exposed" contract to fail compilation.
Can reproduce on the default branch of the SolidState repository.