Code Quality & Best Practices
Code quality issues, deprecated functions, and non-adherence to best practices
Inadherence To Standards
Inadherence to Standards In terms of smart contract development, it's important to follow standards. Standards are set to prevent vulnerabilities, an...
Incorrect Constructor
Incorrect Constructor Name > [!NOTE] > This vulnerability is relevant to older contracts using Solidity versions before `0.4.22`. Modern Solidity v...
Incorrect Inheritance Order
Incorrect Inheritance Order In Solidity, it is possible to inherit from multiple sources, which if not properly understood can introduce ambiguity. T...
Shadowing State Variables
Shadowing State Variables It is possible to use the same variable twice in Solidity, but it can lead to unintended side effects. This is especially d...
Unsupported Opcodes
Unsupported Opcodes EVM-compatible chains, such as zkSync Era, BNB Chain, Polygon, Optimism and Arbitrum implement the Ethereum Virtual Machine (EVM)...
Floating Pragma
Floating Pragma It is considered best practice to pick one compiler version and stick with it. With a floating pragma, contracts may accidentally be ...
Outdated Compiler Version
Outdated Compiler Version Developers often find bugs and vulnerabilities in existing software and make patches. For this reason, it's important to us...
Unused Variables
Presence of Unused Variables Although it is allowed, it is best practice to avoid unused variables. Unused variables can lead to a few different prob...
Use Of Deprecated Functions
Use of Deprecated Functions As time goes by, functions and operators in Solidity are deprecated and often replaced. It's important to not use depreca...