Solidity

Basic

Key Competencies

 

Understanding of ERC20 Tokens and Airdrops:

  • Ability to identify potential vulnerabilities in a smart contract.

  • Awareness of gas limitations in loops when dealing with unknown data sizes.

  • Understanding the difference between transferring tokens and sending ether in a contract.

 

Data Types and Type Conversions:

  • Knowledge of data types and their sizes in Solidity (e.g., uint64, uint32, uint16, bytes32, bytes2, bytes3).

  • Understanding of type conversions and their effects on data storage. Function 

Behaviour and Return Values:

  • Understanding how functions in Solidity behave and return values.

  • Ability to predict the output of functions based on given inputs.

  • Knowledge of the behavior of arithmetic operations on different data types.

 

Gas Optimization:

  • Awareness of gas costs associated with different Solidity constructs. Ability to identify gas-efficient coding practices.

 

Contract Interactions and Inheritance:

  • Understanding how contracts can inherit from other contracts. Knowledge of function modifiers and their use in contract inheritance.

 

Reentrancy Patterns:

  • Recognition of different implementations of the reentrancy pattern. Ability to assess the gas efficiency of various implementations.

 

Stack Depth and Recursive Function Calls:

  • Awareness of the EVM stack limit and its implications.

  • Ability to identify flaws related to stack depth in a contract. 

 

Order of Gas Usage:

  • Ability to compare and rank contracts based on the gas consumption of their functions.

 

Vulnerability Detection: 

  • Skill in reviewing Solidity code for potential vulnerabilities.

  • Ability to identify flaws and suggest improvements in smart contracts.