In the governance tutorial (https://docs.openzeppelin.com/contracts/4.x/governance#token) the token imports ERC20
, ERC20Permit
and ERC20Votes
. But ERC20Votes
inherits from ERC20Permit
which inherits from ERC20
, isn't it redundant to import all three contracts? It should be sufficient to just import ERC20Votes
, or am I missing something? This would also make the overrides in the tutorial redundant.
There is also a similar issue with the Governor contract below the token contract.
It's technically not necessary to import ERC20
, but only because indirectly the other imports brought it in, and I think it's better to make the import explicit instead of relying on the implicit dependency.