- [N-01] Require() should be used instead of assert()
- [N-02] Non-library/interface files should use fixed compiler versions, not floating ones
- [N-03] Open Todos
Prior to solidity version 0.8.0, hitting an assert consumes the remainder of the transaction’s available gas rather than returning it, as require()/revert()do. assert()should be avoided even past solidity version 0.8.0 as its documentation states that “The assert function creates an error of type Panic(uint256). … Properly functioning code should never create a Panic, not even on invalid external input. If this happens, then there is a bug in your contract which you should fix”.
Code architecture, incentives, and error handling/reporting questions/issues should be resolved before deployment