Skip to content

Latest commit

 

History

History
10 lines (7 loc) · 728 Bytes

54.md

File metadata and controls

10 lines (7 loc) · 728 Bytes

Wrong inheritance

Description:

Solidity supports multiple inheritance, meaning that one contract can inherit several contracts. Multiple inheritance introduces ambiguity called Diamond Problem: if two or more base contracts define the same function, which one should be called in the child contract? Solidity deals with this ambiguity by using reverse C3 Linearization, which sets a priority between base contracts.

Remediation:

When inheriting multiple contracts, especially if they have identical functions, a developer should carefully specify inheritance in the correct order. The rule of thumb is to inherit contracts from more /general/ to more /specific/.

References:

https://swcregistry.io/docs/SWC-125