<!-- canonical: https://0xsimao.com/findings/m-0-override-keyword-inherited-methods -->

# Missing override keyword for interface inherited methods

Low/Info · Three Sigma · Stablecoin framework · 8th January, 2024

Finding 3S-M^0-N01 of the M^0 Minter Gateway security review.

- Protocol: https://www.m0.org/
- Report: /reports/m-0
- Codebase: https://github.com/0xsimao/ttg/tree/a8127901fa1f24a2e821cf4d9854a1aa6ac8088c
- Source: https://cdn.sanity.io/files/qoqld077/production/1cdafafad874aba76e062ad8c216c98338c096db.pdf

---

### Description

Most contracts are not implementing their interface methods with override keywords. For
example, the [DistributionVault](https://github.com/MZero-Labs/ttg/blob/a8127901fa1f24a2e821cf4d9854a1aa6ac8088c/src/DistributionVault.sol) contract implements all its interface functions, but it doesn't
add the override keyword to any of the functions. This means the compiler won't check
that the implementation is properly implementing what is defined on the interface, making
it prone to spelling errors and function signature mismatching.

### Recommendation

Add the override keyword to those contracts functions as a best practice and for compiler
checks.

### Status

Acknowledged

---

Related findings:

- [gap is missing the private keyword](https://0xsimao.com/findings/nftperp-ii-gap-missing-private-keyword): Nftperp Matching Engine
- [Missing provideToSpOnBehalfOf interface](https://0xsimao.com/findings/felix-missing-provide-behalf-interface): Felix Price Feeds
