CertiK reviewed SafePal (SafePal - Audit) on 1 Feb 2024: 5 findings, 0 critical; 1 marked fixed, 1 acknowledged, 3 open.
Report hosted on skynet.certik.com.
Trustblock does not review code.
Statuses are the security firm’s own, from its report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 0 | 1 | 0 |
| Medium | 0 | 0 | 1 |
| Low | 3 | 0 | 0 |
The `user.timestamp` is updated to the current `block.timestamp` each time a user makes a deposit. This behavior inadvertently resets the start time for the user's previous deposits, resulting in an extension of the stake lock time for those funds.
The `SafeMath` library is used unnecessarily. With Solidity compiler versions 0.8.0 or newer, arithmetic operations will automatically revert in case of integer overflow or underflow. ```solidity=121 library SafeMath { ``` - An implementation of `SafeMath` library is found. --- ```solidity=773 using SafeMath for uint256; ``` - `SafeMath` library is used for `uint256` type in `StakePool` contract. ```solidity=810 user.amount = user.amount.add(_amount); ``` - `SafeMath.add` is called in `deposit` function of `StakePool` contract.
The linked variables assigned in the constructor can be declared as `immutable`. Immutable state variables can be assigned during contract creation but will remain constant throughout the lifetime of a deployed contract. A big advantage of immutable variables is that reading them is significantly cheaper than reading from regular state variables since they will not be stored in storage.
The report names a repository or files. Open the report to see its scope.
Repository and files the report names (1)
1,044 projects reviewed · 1,375 reports · latest May 2025
See CertiK’s auditsSomething wrong on this page? A missing report, a wrong date, a finding that was fixed since. Tell us and we check it against its source.
Tell us