You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I guess this repo assumes that all contracts are using interfaces?
That is indeed the case! We are pushing to have the entirety of a contract's ABI extracted into interfaces as a best practise, since:
Interfaces can be exported with a more lax pragma solidity, making integrations less painful
Having most natspec on the interface allows the contracts to be more implementation-dense
When trying to learn about the codebase, it should be enough to read the interfaces you're interested in to understand what a contract does, only having to dive into the implementation if you are interested in the how
We understand it can be painful to separate every contract into interface and implementation, especially for existing codebases, and not everybody will agree on the value said separation provides, so we provide the option to disable that check by setting enforceInheritdoc to false.
Ran
npx @defi-wonderland/natspec-smells --include "src/L2/ETHLiquidity.sol"
here https://github.com/ethereum-optimism/optimism/pullshttps://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/ETHLiquidity.sol.
I get
@inheritdoc is missing
for some functions that should not require this at all:Note that neither of these functions are inherited.
The text was updated successfully, but these errors were encountered: